1/* Simscape target specific file.
2 * This file is generated for the Simscape network associated with the solver block 'PlatformAssem/Solver Configuration'.
3 */
4
5#include <math.h>
6#include <string.h>
7#include "pm_std.h"
8#include "sm_std.h"
9#include "ne_std.h"
10#include "ne_dae.h"
11#include "sm_ssci_run_time_errors.h"
12#include "sm_CTarget.h"
13
14void PlatformAssem_f0ca4364_1_checkTargets(const double *rtdv, const double
15 *state)
16{
17 (void) rtdv;
18 (void) state;
19}
20
21void PlatformAssem_f0ca4364_1_setTargets(const double *rtdv, CTarget *targets)
22{
23 (void) rtdv;
24 (void) targets;
25}
26
27void PlatformAssem_f0ca4364_1_resetStateVector(const void *mech, double *state)
28{
29 double xx[2];
30 (void) mech;
31 xx[0] = 0.0;
32 xx[1] = 1.0;
33 state[0] = xx[0];
34 state[1] = xx[0];
35 state[2] = xx[0];
36 state[3] = xx[0];
37 state[4] = xx[0];
38 state[5] = xx[0];
39 state[6] = xx[0];
40 state[7] = xx[0];
41 state[8] = xx[0];
42 state[9] = xx[0];
43 state[10] = xx[0];
44 state[11] = xx[0];
45 state[12] = xx[0];
46 state[13] = xx[0];
47 state[14] = xx[0];
48 state[15] = xx[0];
49 state[16] = xx[1];
50 state[17] = xx[0];
51 state[18] = xx[0];
52 state[19] = xx[0];
53 state[20] = xx[0];
54 state[21] = xx[0];
55 state[22] = xx[0];
56 state[23] = xx[1];
57 state[24] = xx[0];
58 state[25] = xx[0];
59 state[26] = xx[0];
60 state[27] = xx[0];
61 state[28] = xx[0];
62 state[29] = xx[0];
63 state[30] = xx[0];
64 state[31] = xx[0];
65 state[32] = xx[0];
66 state[33] = xx[0];
67 state[34] = xx[0];
68 state[35] = xx[0];
69 state[36] = xx[0];
70 state[37] = xx[0];
71 state[38] = xx[0];
72 state[39] = xx[0];
73 state[40] = xx[0];
74 state[41] = xx[0];
75 state[42] = xx[0];
76 state[43] = xx[0];
77 state[44] = xx[0];
78 state[45] = xx[0];
79 state[46] = xx[1];
80 state[47] = xx[0];
81 state[48] = xx[0];
82 state[49] = xx[0];
83 state[50] = xx[0];
84 state[51] = xx[0];
85 state[52] = xx[0];
86 state[53] = xx[0];
87 state[54] = xx[0];
88 state[55] = xx[0];
89 state[56] = xx[0];
90 state[57] = xx[1];
91 state[58] = xx[0];
92 state[59] = xx[0];
93 state[60] = xx[0];
94 state[61] = xx[0];
95 state[62] = xx[0];
96 state[63] = xx[0];
97 state[64] = xx[0];
98 state[65] = xx[0];
99 state[66] = xx[0];
100 state[67] = xx[0];
101 state[68] = xx[1];
102 state[69] = xx[0];
103 state[70] = xx[0];
104 state[71] = xx[0];
105 state[72] = xx[0];
106 state[73] = xx[0];
107 state[74] = xx[0];
108 state[75] = xx[0];
109 state[76] = xx[0];
110 state[77] = xx[0];
111 state[78] = xx[0];
112 state[79] = xx[1];
113 state[80] = xx[0];
114 state[81] = xx[0];
115 state[82] = xx[0];
116 state[83] = xx[0];
117 state[84] = xx[0];
118 state[85] = xx[0];
119 state[86] = xx[0];
120 state[87] = xx[0];
121 state[88] = xx[0];
122 state[89] = xx[0];
123 state[90] = xx[1];
124 state[91] = xx[0];
125 state[92] = xx[0];
126 state[93] = xx[0];
127 state[94] = xx[0];
128 state[95] = xx[0];
129 state[96] = xx[0];
130}
131
132void PlatformAssem_f0ca4364_1_initializeTrackedAngleState(const void *mech,
133 const double *rtdv, const double *motionData, double *state, void *neDiagMgr0)
134{
135 NeuDiagnosticManager *neDiagMgr = (NeuDiagnosticManager *) neDiagMgr0;
136 (void) mech;
137 (void) rtdv;
138 (void) motionData;
139 (void) state;
140 (void) neDiagMgr;
141}
142
143void PlatformAssem_f0ca4364_1_computeDiscreteState(const void *mech, const
144 double *rtdv, double *state)
145{
146 (void) mech;
147 (void) rtdv;
148 (void) state;
149}
150
151void PlatformAssem_f0ca4364_1_adjustPosition(const void *mech, const double
152 *dofDeltas, double *state)
153{
154 double xx[42];
155 (void) mech;
156 xx[0] = state[16];
157 xx[1] = state[17];
158 xx[2] = state[18];
159 xx[3] = state[19];
160 xx[4] = dofDeltas[8];
161 xx[5] = dofDeltas[9];
162 xx[6] = dofDeltas[10];
163 pm_math_quatDeriv(xx + 0, xx + 4, xx + 7);
164 xx[0] = state[16] + xx[7];
165 xx[1] = state[17] + xx[8];
166 xx[2] = state[18] + xx[9];
167 xx[3] = state[19] + xx[10];
168 xx[4] = 1.0e-64;
169 xx[5] = sqrt(xx[0] * xx[0] + xx[1] * xx[1] + xx[2] * xx[2] + xx[3] * xx[3]);
170 if (xx[4] > xx[5])
171 xx[5] = xx[4];
172 xx[6] = state[23];
173 xx[7] = state[24];
174 xx[8] = state[25];
175 xx[9] = state[26];
176 xx[10] = dofDeltas[11];
177 xx[11] = dofDeltas[12];
178 xx[12] = dofDeltas[13];
179 pm_math_quatDeriv(xx + 6, xx + 10, xx + 13);
180 xx[6] = state[23] + xx[13];
181 xx[7] = state[24] + xx[14];
182 xx[8] = state[25] + xx[15];
183 xx[9] = state[26] + xx[16];
184 xx[10] = sqrt(xx[6] * xx[6] + xx[7] * xx[7] + xx[8] * xx[8] + xx[9] * xx[9]);
185 if (xx[4] > xx[10])
186 xx[10] = xx[4];
187 xx[11] = state[46];
188 xx[12] = state[47];
189 xx[13] = state[48];
190 xx[14] = state[49];
191 xx[15] = dofDeltas[22];
192 xx[16] = dofDeltas[23];
193 xx[17] = dofDeltas[24];
194 pm_math_quatDeriv(xx + 11, xx + 15, xx + 18);
195 xx[11] = state[46] + xx[18];
196 xx[12] = state[47] + xx[19];
197 xx[13] = state[48] + xx[20];
198 xx[14] = state[49] + xx[21];
199 xx[15] = sqrt(xx[11] * xx[11] + xx[12] * xx[12] + xx[13] * xx[13] + xx[14] *
200 xx[14]);
201 if (xx[4] > xx[15])
202 xx[15] = xx[4];
203 xx[16] = state[57];
204 xx[17] = state[58];
205 xx[18] = state[59];
206 xx[19] = state[60];
207 xx[20] = dofDeltas[27];
208 xx[21] = dofDeltas[28];
209 xx[22] = dofDeltas[29];
210 pm_math_quatDeriv(xx + 16, xx + 20, xx + 23);
211 xx[16] = state[57] + xx[23];
212 xx[17] = state[58] + xx[24];
213 xx[18] = state[59] + xx[25];
214 xx[19] = state[60] + xx[26];
215 xx[20] = sqrt(xx[16] * xx[16] + xx[17] * xx[17] + xx[18] * xx[18] + xx[19] *
216 xx[19]);
217 if (xx[4] > xx[20])
218 xx[20] = xx[4];
219 xx[21] = state[68];
220 xx[22] = state[69];
221 xx[23] = state[70];
222 xx[24] = state[71];
223 xx[25] = dofDeltas[32];
224 xx[26] = dofDeltas[33];
225 xx[27] = dofDeltas[34];
226 pm_math_quatDeriv(xx + 21, xx + 25, xx + 28);
227 xx[21] = state[68] + xx[28];
228 xx[22] = state[69] + xx[29];
229 xx[23] = state[70] + xx[30];
230 xx[24] = state[71] + xx[31];
231 xx[25] = sqrt(xx[21] * xx[21] + xx[22] * xx[22] + xx[23] * xx[23] + xx[24] *
232 xx[24]);
233 if (xx[4] > xx[25])
234 xx[25] = xx[4];
235 xx[26] = state[79];
236 xx[27] = state[80];
237 xx[28] = state[81];
238 xx[29] = state[82];
239 xx[30] = dofDeltas[37];
240 xx[31] = dofDeltas[38];
241 xx[32] = dofDeltas[39];
242 pm_math_quatDeriv(xx + 26, xx + 30, xx + 33);
243 xx[26] = state[79] + xx[33];
244 xx[27] = state[80] + xx[34];
245 xx[28] = state[81] + xx[35];
246 xx[29] = state[82] + xx[36];
247 xx[30] = sqrt(xx[26] * xx[26] + xx[27] * xx[27] + xx[28] * xx[28] + xx[29] *
248 xx[29]);
249 if (xx[4] > xx[30])
250 xx[30] = xx[4];
251 xx[31] = state[90];
252 xx[32] = state[91];
253 xx[33] = state[92];
254 xx[34] = state[93];
255 xx[35] = dofDeltas[42];
256 xx[36] = dofDeltas[43];
257 xx[37] = dofDeltas[44];
258 pm_math_quatDeriv(xx + 31, xx + 35, xx + 38);
259 xx[31] = state[90] + xx[38];
260 xx[32] = state[91] + xx[39];
261 xx[33] = state[92] + xx[40];
262 xx[34] = state[93] + xx[41];
263 xx[35] = sqrt(xx[31] * xx[31] + xx[32] * xx[32] + xx[33] * xx[33] + xx[34] *
264 xx[34]);
265 if (xx[4] > xx[35])
266 xx[35] = xx[4];
267 state[0] = state[0] + dofDeltas[0];
268 state[1] = state[1] + dofDeltas[1];
269 state[2] = state[2] + dofDeltas[2];
270 state[6] = state[6] + dofDeltas[3];
271 state[7] = state[7] + dofDeltas[4];
272 state[8] = state[8] + dofDeltas[5];
273 state[12] = state[12] + dofDeltas[6];
274 state[14] = state[14] + dofDeltas[7];
275 state[16] = xx[0] / xx[5];
276 state[17] = xx[1] / xx[5];
277 state[18] = xx[2] / xx[5];
278 state[19] = xx[3] / xx[5];
279 state[23] = xx[6] / xx[10];
280 state[24] = xx[7] / xx[10];
281 state[25] = xx[8] / xx[10];
282 state[26] = xx[9] / xx[10];
283 state[30] = state[30] + dofDeltas[14];
284 state[32] = state[32] + dofDeltas[15];
285 state[34] = state[34] + dofDeltas[16];
286 state[36] = state[36] + dofDeltas[17];
287 state[38] = state[38] + dofDeltas[18];
288 state[40] = state[40] + dofDeltas[19];
289 state[42] = state[42] + dofDeltas[20];
290 state[44] = state[44] + dofDeltas[21];
291 state[46] = xx[11] / xx[15];
292 state[47] = xx[12] / xx[15];
293 state[48] = xx[13] / xx[15];
294 state[49] = xx[14] / xx[15];
295 state[53] = state[53] + dofDeltas[25];
296 state[55] = state[55] + dofDeltas[26];
297 state[57] = xx[16] / xx[20];
298 state[58] = xx[17] / xx[20];
299 state[59] = xx[18] / xx[20];
300 state[60] = xx[19] / xx[20];
301 state[64] = state[64] + dofDeltas[30];
302 state[66] = state[66] + dofDeltas[31];
303 state[68] = xx[21] / xx[25];
304 state[69] = xx[22] / xx[25];
305 state[70] = xx[23] / xx[25];
306 state[71] = xx[24] / xx[25];
307 state[75] = state[75] + dofDeltas[35];
308 state[77] = state[77] + dofDeltas[36];
309 state[79] = xx[26] / xx[30];
310 state[80] = xx[27] / xx[30];
311 state[81] = xx[28] / xx[30];
312 state[82] = xx[29] / xx[30];
313 state[86] = state[86] + dofDeltas[40];
314 state[88] = state[88] + dofDeltas[41];
315 state[90] = xx[31] / xx[35];
316 state[91] = xx[32] / xx[35];
317 state[92] = xx[33] / xx[35];
318 state[93] = xx[34] / xx[35];
319}
320
321static void perturbState_0_0(double mag, double *state)
322{
323 state[0] = state[0] + mag;
324}
325
326static void perturbState_0_0v(double mag, double *state)
327{
328 state[0] = state[0] + mag;
329 state[3] = state[3] - 0.875 * mag;
330}
331
332static void perturbState_0_1(double mag, double *state)
333{
334 state[1] = state[1] + mag;
335}
336
337static void perturbState_0_1v(double mag, double *state)
338{
339 state[1] = state[1] + mag;
340 state[4] = state[4] - 0.875 * mag;
341}
342
343static void perturbState_0_2(double mag, double *state)
344{
345 state[2] = state[2] + mag;
346}
347
348static void perturbState_0_2v(double mag, double *state)
349{
350 state[2] = state[2] + mag;
351 state[5] = state[5] - 0.875 * mag;
352}
353
354static void perturbState_1_0(double mag, double *state)
355{
356 state[6] = state[6] + mag;
357}
358
359static void perturbState_1_0v(double mag, double *state)
360{
361 state[6] = state[6] + mag;
362 state[9] = state[9] - 0.875 * mag;
363}
364
365static void perturbState_1_1(double mag, double *state)
366{
367 state[7] = state[7] + mag;
368}
369
370static void perturbState_1_1v(double mag, double *state)
371{
372 state[7] = state[7] + mag;
373 state[10] = state[10] - 0.875 * mag;
374}
375
376static void perturbState_1_2(double mag, double *state)
377{
378 state[8] = state[8] + mag;
379}
380
381static void perturbState_1_2v(double mag, double *state)
382{
383 state[8] = state[8] + mag;
384 state[11] = state[11] - 0.875 * mag;
385}
386
387static void perturbState_2_0(double mag, double *state)
388{
389 state[12] = state[12] + mag;
390}
391
392static void perturbState_2_0v(double mag, double *state)
393{
394 state[12] = state[12] + mag;
395 state[13] = state[13] - 0.875 * mag;
396}
397
398static void perturbState_3_0(double mag, double *state)
399{
400 state[14] = state[14] + mag;
401}
402
403static void perturbState_3_0v(double mag, double *state)
404{
405 state[14] = state[14] + mag;
406 state[15] = state[15] - 0.875 * mag;
407}
408
409static void perturbState_4_0(double mag, double *state)
410{
411 double xx[14];
412 xx[0] = 0.5 * mag;
413 xx[1] = fabs(mag);
414 xx[2] = 1.0 / (xx[1] - floor(xx[1]) + 1.0e-9);
415 xx[1] = sin(xx[2]);
416 xx[3] = cos(xx[2]);
417 xx[4] = sin(2.0 * xx[2]);
418 xx[2] = sqrt(xx[1] * xx[1] + xx[3] * xx[3] + xx[4] * xx[4]);
419 xx[5] = sin(xx[0]);
420 xx[6] = cos(xx[0]);
421 xx[7] = xx[1] / xx[2] * xx[5];
422 xx[8] = xx[3] / xx[2] * xx[5];
423 xx[9] = xx[4] / xx[2] * xx[5];
424 xx[0] = state[16];
425 xx[1] = state[17];
426 xx[2] = state[18];
427 xx[3] = state[19];
428 pm_math_quatCompose(xx + 6, xx + 0, xx + 10);
429 state[16] = xx[10];
430 state[17] = xx[11];
431 state[18] = xx[12];
432 state[19] = xx[13];
433}
434
435static void perturbState_4_0v(double mag, double *state)
436{
437 double xx[14];
438 xx[0] = 0.5 * mag;
439 xx[1] = fabs(mag);
440 xx[2] = 1.0 / (xx[1] - floor(xx[1]) + 1.0e-9);
441 xx[1] = sin(xx[2]);
442 xx[3] = cos(xx[2]);
443 xx[4] = sin(2.0 * xx[2]);
444 xx[2] = sqrt(xx[1] * xx[1] + xx[3] * xx[3] + xx[4] * xx[4]);
445 xx[5] = sin(xx[0]);
446 xx[6] = cos(xx[0]);
447 xx[7] = xx[1] / xx[2] * xx[5];
448 xx[8] = xx[3] / xx[2] * xx[5];
449 xx[9] = xx[4] / xx[2] * xx[5];
450 xx[1] = state[16];
451 xx[2] = state[17];
452 xx[3] = state[18];
453 xx[4] = state[19];
454 pm_math_quatCompose(xx + 6, xx + 1, xx + 10);
455 state[16] = xx[10];
456 state[17] = xx[11];
457 state[18] = xx[12];
458 state[19] = xx[13];
459 state[20] = state[20] + 1.2 * mag;
460 state[21] = state[21] - xx[0];
461 state[22] = state[22] + 0.9 * mag;
462}
463
464static void perturbState_5_0(double mag, double *state)
465{
466 double xx[14];
467 xx[0] = 0.5 * mag;
468 xx[1] = fabs(mag);
469 xx[2] = 1.0 / (xx[1] - floor(xx[1]) + 1.0e-9);
470 xx[1] = sin(xx[2]);
471 xx[3] = cos(xx[2]);
472 xx[4] = sin(2.0 * xx[2]);
473 xx[2] = sqrt(xx[1] * xx[1] + xx[3] * xx[3] + xx[4] * xx[4]);
474 xx[5] = sin(xx[0]);
475 xx[6] = cos(xx[0]);
476 xx[7] = xx[1] / xx[2] * xx[5];
477 xx[8] = xx[3] / xx[2] * xx[5];
478 xx[9] = xx[4] / xx[2] * xx[5];
479 xx[0] = state[23];
480 xx[1] = state[24];
481 xx[2] = state[25];
482 xx[3] = state[26];
483 pm_math_quatCompose(xx + 6, xx + 0, xx + 10);
484 state[23] = xx[10];
485 state[24] = xx[11];
486 state[25] = xx[12];
487 state[26] = xx[13];
488}
489
490static void perturbState_5_0v(double mag, double *state)
491{
492 double xx[14];
493 xx[0] = 0.5 * mag;
494 xx[1] = fabs(mag);
495 xx[2] = 1.0 / (xx[1] - floor(xx[1]) + 1.0e-9);
496 xx[1] = sin(xx[2]);
497 xx[3] = cos(xx[2]);
498 xx[4] = sin(2.0 * xx[2]);
499 xx[2] = sqrt(xx[1] * xx[1] + xx[3] * xx[3] + xx[4] * xx[4]);
500 xx[5] = sin(xx[0]);
501 xx[6] = cos(xx[0]);
502 xx[7] = xx[1] / xx[2] * xx[5];
503 xx[8] = xx[3] / xx[2] * xx[5];
504 xx[9] = xx[4] / xx[2] * xx[5];
505 xx[1] = state[23];
506 xx[2] = state[24];
507 xx[3] = state[25];
508 xx[4] = state[26];
509 pm_math_quatCompose(xx + 6, xx + 1, xx + 10);
510 state[23] = xx[10];
511 state[24] = xx[11];
512 state[25] = xx[12];
513 state[26] = xx[13];
514 state[27] = state[27] + 1.2 * mag;
515 state[28] = state[28] - xx[0];
516 state[29] = state[29] + 0.9 * mag;
517}
518
519static void perturbState_6_0(double mag, double *state)
520{
521 state[30] = state[30] + mag;
522}
523
524static void perturbState_6_0v(double mag, double *state)
525{
526 state[30] = state[30] + mag;
527 state[31] = state[31] - 0.875 * mag;
528}
529
530static void perturbState_7_0(double mag, double *state)
531{
532 state[32] = state[32] + mag;
533}
534
535static void perturbState_7_0v(double mag, double *state)
536{
537 state[32] = state[32] + mag;
538 state[33] = state[33] - 0.875 * mag;
539}
540
541static void perturbState_8_0(double mag, double *state)
542{
543 state[34] = state[34] + mag;
544}
545
546static void perturbState_8_0v(double mag, double *state)
547{
548 state[34] = state[34] + mag;
549 state[35] = state[35] - 0.875 * mag;
550}
551
552static void perturbState_9_0(double mag, double *state)
553{
554 state[36] = state[36] + mag;
555}
556
557static void perturbState_9_0v(double mag, double *state)
558{
559 state[36] = state[36] + mag;
560 state[37] = state[37] - 0.875 * mag;
561}
562
563static void perturbState_10_0(double mag, double *state)
564{
565 state[38] = state[38] + mag;
566}
567
568static void perturbState_10_0v(double mag, double *state)
569{
570 state[38] = state[38] + mag;
571 state[39] = state[39] - 0.875 * mag;
572}
573
574static void perturbState_11_0(double mag, double *state)
575{
576 state[40] = state[40] + mag;
577}
578
579static void perturbState_11_0v(double mag, double *state)
580{
581 state[40] = state[40] + mag;
582 state[41] = state[41] - 0.875 * mag;
583}
584
585static void perturbState_12_0(double mag, double *state)
586{
587 state[42] = state[42] + mag;
588}
589
590static void perturbState_12_0v(double mag, double *state)
591{
592 state[42] = state[42] + mag;
593 state[43] = state[43] - 0.875 * mag;
594}
595
596static void perturbState_13_0(double mag, double *state)
597{
598 state[44] = state[44] + mag;
599}
600
601static void perturbState_13_0v(double mag, double *state)
602{
603 state[44] = state[44] + mag;
604 state[45] = state[45] - 0.875 * mag;
605}
606
607static void perturbState_14_0(double mag, double *state)
608{
609 double xx[14];
610 xx[0] = 0.5 * mag;
611 xx[1] = fabs(mag);
612 xx[2] = 1.0 / (xx[1] - floor(xx[1]) + 1.0e-9);
613 xx[1] = sin(xx[2]);
614 xx[3] = cos(xx[2]);
615 xx[4] = sin(2.0 * xx[2]);
616 xx[2] = sqrt(xx[1] * xx[1] + xx[3] * xx[3] + xx[4] * xx[4]);
617 xx[5] = sin(xx[0]);
618 xx[6] = cos(xx[0]);
619 xx[7] = xx[1] / xx[2] * xx[5];
620 xx[8] = xx[3] / xx[2] * xx[5];
621 xx[9] = xx[4] / xx[2] * xx[5];
622 xx[0] = state[46];
623 xx[1] = state[47];
624 xx[2] = state[48];
625 xx[3] = state[49];
626 pm_math_quatCompose(xx + 6, xx + 0, xx + 10);
627 state[46] = xx[10];
628 state[47] = xx[11];
629 state[48] = xx[12];
630 state[49] = xx[13];
631}
632
633static void perturbState_14_0v(double mag, double *state)
634{
635 double xx[14];
636 xx[0] = 0.5 * mag;
637 xx[1] = fabs(mag);
638 xx[2] = 1.0 / (xx[1] - floor(xx[1]) + 1.0e-9);
639 xx[1] = sin(xx[2]);
640 xx[3] = cos(xx[2]);
641 xx[4] = sin(2.0 * xx[2]);
642 xx[2] = sqrt(xx[1] * xx[1] + xx[3] * xx[3] + xx[4] * xx[4]);
643 xx[5] = sin(xx[0]);
644 xx[6] = cos(xx[0]);
645 xx[7] = xx[1] / xx[2] * xx[5];
646 xx[8] = xx[3] / xx[2] * xx[5];
647 xx[9] = xx[4] / xx[2] * xx[5];
648 xx[1] = state[46];
649 xx[2] = state[47];
650 xx[3] = state[48];
651 xx[4] = state[49];
652 pm_math_quatCompose(xx + 6, xx + 1, xx + 10);
653 state[46] = xx[10];
654 state[47] = xx[11];
655 state[48] = xx[12];
656 state[49] = xx[13];
657 state[50] = state[50] + 1.2 * mag;
658 state[51] = state[51] - xx[0];
659 state[52] = state[52] + 0.9 * mag;
660}
661
662static void perturbState_15_0(double mag, double *state)
663{
664 state[53] = state[53] + mag;
665}
666
667static void perturbState_15_0v(double mag, double *state)
668{
669 state[53] = state[53] + mag;
670 state[54] = state[54] - 0.875 * mag;
671}
672
673static void perturbState_16_0(double mag, double *state)
674{
675 state[55] = state[55] + mag;
676}
677
678static void perturbState_16_0v(double mag, double *state)
679{
680 state[55] = state[55] + mag;
681 state[56] = state[56] - 0.875 * mag;
682}
683
684static void perturbState_17_0(double mag, double *state)
685{
686 double xx[14];
687 xx[0] = 0.5 * mag;
688 xx[1] = fabs(mag);
689 xx[2] = 1.0 / (xx[1] - floor(xx[1]) + 1.0e-9);
690 xx[1] = sin(xx[2]);
691 xx[3] = cos(xx[2]);
692 xx[4] = sin(2.0 * xx[2]);
693 xx[2] = sqrt(xx[1] * xx[1] + xx[3] * xx[3] + xx[4] * xx[4]);
694 xx[5] = sin(xx[0]);
695 xx[6] = cos(xx[0]);
696 xx[7] = xx[1] / xx[2] * xx[5];
697 xx[8] = xx[3] / xx[2] * xx[5];
698 xx[9] = xx[4] / xx[2] * xx[5];
699 xx[0] = state[57];
700 xx[1] = state[58];
701 xx[2] = state[59];
702 xx[3] = state[60];
703 pm_math_quatCompose(xx + 6, xx + 0, xx + 10);
704 state[57] = xx[10];
705 state[58] = xx[11];
706 state[59] = xx[12];
707 state[60] = xx[13];
708}
709
710static void perturbState_17_0v(double mag, double *state)
711{
712 double xx[14];
713 xx[0] = 0.5 * mag;
714 xx[1] = fabs(mag);
715 xx[2] = 1.0 / (xx[1] - floor(xx[1]) + 1.0e-9);
716 xx[1] = sin(xx[2]);
717 xx[3] = cos(xx[2]);
718 xx[4] = sin(2.0 * xx[2]);
719 xx[2] = sqrt(xx[1] * xx[1] + xx[3] * xx[3] + xx[4] * xx[4]);
720 xx[5] = sin(xx[0]);
721 xx[6] = cos(xx[0]);
722 xx[7] = xx[1] / xx[2] * xx[5];
723 xx[8] = xx[3] / xx[2] * xx[5];
724 xx[9] = xx[4] / xx[2] * xx[5];
725 xx[1] = state[57];
726 xx[2] = state[58];
727 xx[3] = state[59];
728 xx[4] = state[60];
729 pm_math_quatCompose(xx + 6, xx + 1, xx + 10);
730 state[57] = xx[10];
731 state[58] = xx[11];
732 state[59] = xx[12];
733 state[60] = xx[13];
734 state[61] = state[61] + 1.2 * mag;
735 state[62] = state[62] - xx[0];
736 state[63] = state[63] + 0.9 * mag;
737}
738
739static void perturbState_18_0(double mag, double *state)
740{
741 state[64] = state[64] + mag;
742}
743
744static void perturbState_18_0v(double mag, double *state)
745{
746 state[64] = state[64] + mag;
747 state[65] = state[65] - 0.875 * mag;
748}
749
750static void perturbState_19_0(double mag, double *state)
751{
752 state[66] = state[66] + mag;
753}
754
755static void perturbState_19_0v(double mag, double *state)
756{
757 state[66] = state[66] + mag;
758 state[67] = state[67] - 0.875 * mag;
759}
760
761static void perturbState_20_0(double mag, double *state)
762{
763 double xx[14];
764 xx[0] = 0.5 * mag;
765 xx[1] = fabs(mag);
766 xx[2] = 1.0 / (xx[1] - floor(xx[1]) + 1.0e-9);
767 xx[1] = sin(xx[2]);
768 xx[3] = cos(xx[2]);
769 xx[4] = sin(2.0 * xx[2]);
770 xx[2] = sqrt(xx[1] * xx[1] + xx[3] * xx[3] + xx[4] * xx[4]);
771 xx[5] = sin(xx[0]);
772 xx[6] = cos(xx[0]);
773 xx[7] = xx[1] / xx[2] * xx[5];
774 xx[8] = xx[3] / xx[2] * xx[5];
775 xx[9] = xx[4] / xx[2] * xx[5];
776 xx[0] = state[68];
777 xx[1] = state[69];
778 xx[2] = state[70];
779 xx[3] = state[71];
780 pm_math_quatCompose(xx + 6, xx + 0, xx + 10);
781 state[68] = xx[10];
782 state[69] = xx[11];
783 state[70] = xx[12];
784 state[71] = xx[13];
785}
786
787static void perturbState_20_0v(double mag, double *state)
788{
789 double xx[14];
790 xx[0] = 0.5 * mag;
791 xx[1] = fabs(mag);
792 xx[2] = 1.0 / (xx[1] - floor(xx[1]) + 1.0e-9);
793 xx[1] = sin(xx[2]);
794 xx[3] = cos(xx[2]);
795 xx[4] = sin(2.0 * xx[2]);
796 xx[2] = sqrt(xx[1] * xx[1] + xx[3] * xx[3] + xx[4] * xx[4]);
797 xx[5] = sin(xx[0]);
798 xx[6] = cos(xx[0]);
799 xx[7] = xx[1] / xx[2] * xx[5];
800 xx[8] = xx[3] / xx[2] * xx[5];
801 xx[9] = xx[4] / xx[2] * xx[5];
802 xx[1] = state[68];
803 xx[2] = state[69];
804 xx[3] = state[70];
805 xx[4] = state[71];
806 pm_math_quatCompose(xx + 6, xx + 1, xx + 10);
807 state[68] = xx[10];
808 state[69] = xx[11];
809 state[70] = xx[12];
810 state[71] = xx[13];
811 state[72] = state[72] + 1.2 * mag;
812 state[73] = state[73] - xx[0];
813 state[74] = state[74] + 0.9 * mag;
814}
815
816static void perturbState_21_0(double mag, double *state)
817{
818 state[75] = state[75] + mag;
819}
820
821static void perturbState_21_0v(double mag, double *state)
822{
823 state[75] = state[75] + mag;
824 state[76] = state[76] - 0.875 * mag;
825}
826
827static void perturbState_22_0(double mag, double *state)
828{
829 state[77] = state[77] + mag;
830}
831
832static void perturbState_22_0v(double mag, double *state)
833{
834 state[77] = state[77] + mag;
835 state[78] = state[78] - 0.875 * mag;
836}
837
838static void perturbState_23_0(double mag, double *state)
839{
840 double xx[14];
841 xx[0] = 0.5 * mag;
842 xx[1] = fabs(mag);
843 xx[2] = 1.0 / (xx[1] - floor(xx[1]) + 1.0e-9);
844 xx[1] = sin(xx[2]);
845 xx[3] = cos(xx[2]);
846 xx[4] = sin(2.0 * xx[2]);
847 xx[2] = sqrt(xx[1] * xx[1] + xx[3] * xx[3] + xx[4] * xx[4]);
848 xx[5] = sin(xx[0]);
849 xx[6] = cos(xx[0]);
850 xx[7] = xx[1] / xx[2] * xx[5];
851 xx[8] = xx[3] / xx[2] * xx[5];
852 xx[9] = xx[4] / xx[2] * xx[5];
853 xx[0] = state[79];
854 xx[1] = state[80];
855 xx[2] = state[81];
856 xx[3] = state[82];
857 pm_math_quatCompose(xx + 6, xx + 0, xx + 10);
858 state[79] = xx[10];
859 state[80] = xx[11];
860 state[81] = xx[12];
861 state[82] = xx[13];
862}
863
864static void perturbState_23_0v(double mag, double *state)
865{
866 double xx[14];
867 xx[0] = 0.5 * mag;
868 xx[1] = fabs(mag);
869 xx[2] = 1.0 / (xx[1] - floor(xx[1]) + 1.0e-9);
870 xx[1] = sin(xx[2]);
871 xx[3] = cos(xx[2]);
872 xx[4] = sin(2.0 * xx[2]);
873 xx[2] = sqrt(xx[1] * xx[1] + xx[3] * xx[3] + xx[4] * xx[4]);
874 xx[5] = sin(xx[0]);
875 xx[6] = cos(xx[0]);
876 xx[7] = xx[1] / xx[2] * xx[5];
877 xx[8] = xx[3] / xx[2] * xx[5];
878 xx[9] = xx[4] / xx[2] * xx[5];
879 xx[1] = state[79];
880 xx[2] = state[80];
881 xx[3] = state[81];
882 xx[4] = state[82];
883 pm_math_quatCompose(xx + 6, xx + 1, xx + 10);
884 state[79] = xx[10];
885 state[80] = xx[11];
886 state[81] = xx[12];
887 state[82] = xx[13];
888 state[83] = state[83] + 1.2 * mag;
889 state[84] = state[84] - xx[0];
890 state[85] = state[85] + 0.9 * mag;
891}
892
893static void perturbState_24_0(double mag, double *state)
894{
895 state[86] = state[86] + mag;
896}
897
898static void perturbState_24_0v(double mag, double *state)
899{
900 state[86] = state[86] + mag;
901 state[87] = state[87] - 0.875 * mag;
902}
903
904static void perturbState_25_0(double mag, double *state)
905{
906 state[88] = state[88] + mag;
907}
908
909static void perturbState_25_0v(double mag, double *state)
910{
911 state[88] = state[88] + mag;
912 state[89] = state[89] - 0.875 * mag;
913}
914
915static void perturbState_26_0(double mag, double *state)
916{
917 double xx[14];
918 xx[0] = 0.5 * mag;
919 xx[1] = fabs(mag);
920 xx[2] = 1.0 / (xx[1] - floor(xx[1]) + 1.0e-9);
921 xx[1] = sin(xx[2]);
922 xx[3] = cos(xx[2]);
923 xx[4] = sin(2.0 * xx[2]);
924 xx[2] = sqrt(xx[1] * xx[1] + xx[3] * xx[3] + xx[4] * xx[4]);
925 xx[5] = sin(xx[0]);
926 xx[6] = cos(xx[0]);
927 xx[7] = xx[1] / xx[2] * xx[5];
928 xx[8] = xx[3] / xx[2] * xx[5];
929 xx[9] = xx[4] / xx[2] * xx[5];
930 xx[0] = state[90];
931 xx[1] = state[91];
932 xx[2] = state[92];
933 xx[3] = state[93];
934 pm_math_quatCompose(xx + 6, xx + 0, xx + 10);
935 state[90] = xx[10];
936 state[91] = xx[11];
937 state[92] = xx[12];
938 state[93] = xx[13];
939}
940
941static void perturbState_26_0v(double mag, double *state)
942{
943 double xx[14];
944 xx[0] = 0.5 * mag;
945 xx[1] = fabs(mag);
946 xx[2] = 1.0 / (xx[1] - floor(xx[1]) + 1.0e-9);
947 xx[1] = sin(xx[2]);
948 xx[3] = cos(xx[2]);
949 xx[4] = sin(2.0 * xx[2]);
950 xx[2] = sqrt(xx[1] * xx[1] + xx[3] * xx[3] + xx[4] * xx[4]);
951 xx[5] = sin(xx[0]);
952 xx[6] = cos(xx[0]);
953 xx[7] = xx[1] / xx[2] * xx[5];
954 xx[8] = xx[3] / xx[2] * xx[5];
955 xx[9] = xx[4] / xx[2] * xx[5];
956 xx[1] = state[90];
957 xx[2] = state[91];
958 xx[3] = state[92];
959 xx[4] = state[93];
960 pm_math_quatCompose(xx + 6, xx + 1, xx + 10);
961 state[90] = xx[10];
962 state[91] = xx[11];
963 state[92] = xx[12];
964 state[93] = xx[13];
965 state[94] = state[94] + 1.2 * mag;
966 state[95] = state[95] - xx[0];
967 state[96] = state[96] + 0.9 * mag;
968}
969
970void PlatformAssem_f0ca4364_1_perturbState(const void *mech, size_t stageIdx,
971 size_t primIdx, double mag, boolean_T doPerturbVelocity, double *state)
972{
973 (void) mech;
974 (void) stageIdx;
975 (void) primIdx;
976 (void) mag;
977 (void) doPerturbVelocity;
978 (void) state;
979 switch ((stageIdx * 6 + primIdx) * 2 + (doPerturbVelocity ? 1 : 0))
980 {
981 case 0:
982 perturbState_0_0(mag, state);
983 break;
984
985 case 1:
986 perturbState_0_0v(mag, state);
987 break;
988
989 case 2:
990 perturbState_0_1(mag, state);
991 break;
992
993 case 3:
994 perturbState_0_1v(mag, state);
995 break;
996
997 case 4:
998 perturbState_0_2(mag, state);
999 break;
1000
1001 case 5:
1002 perturbState_0_2v(mag, state);
1003 break;
1004
1005 case 12:
1006 perturbState_1_0(mag, state);
1007 break;
1008
1009 case 13:
1010 perturbState_1_0v(mag, state);
1011 break;
1012
1013 case 14:
1014 perturbState_1_1(mag, state);
1015 break;
1016
1017 case 15:
1018 perturbState_1_1v(mag, state);
1019 break;
1020
1021 case 16:
1022 perturbState_1_2(mag, state);
1023 break;
1024
1025 case 17:
1026 perturbState_1_2v(mag, state);
1027 break;
1028
1029 case 24:
1030 perturbState_2_0(mag, state);
1031 break;
1032
1033 case 25:
1034 perturbState_2_0v(mag, state);
1035 break;
1036
1037 case 36:
1038 perturbState_3_0(mag, state);
1039 break;
1040
1041 case 37:
1042 perturbState_3_0v(mag, state);
1043 break;
1044
1045 case 48:
1046 perturbState_4_0(mag, state);
1047 break;
1048
1049 case 49:
1050 perturbState_4_0v(mag, state);
1051 break;
1052
1053 case 60:
1054 perturbState_5_0(mag, state);
1055 break;
1056
1057 case 61:
1058 perturbState_5_0v(mag, state);
1059 break;
1060
1061 case 72:
1062 perturbState_6_0(mag, state);
1063 break;
1064
1065 case 73:
1066 perturbState_6_0v(mag, state);
1067 break;
1068
1069 case 84:
1070 perturbState_7_0(mag, state);
1071 break;
1072
1073 case 85:
1074 perturbState_7_0v(mag, state);
1075 break;
1076
1077 case 96:
1078 perturbState_8_0(mag, state);
1079 break;
1080
1081 case 97:
1082 perturbState_8_0v(mag, state);
1083 break;
1084
1085 case 108:
1086 perturbState_9_0(mag, state);
1087 break;
1088
1089 case 109:
1090 perturbState_9_0v(mag, state);
1091 break;
1092
1093 case 120:
1094 perturbState_10_0(mag, state);
1095 break;
1096
1097 case 121:
1098 perturbState_10_0v(mag, state);
1099 break;
1100
1101 case 132:
1102 perturbState_11_0(mag, state);
1103 break;
1104
1105 case 133:
1106 perturbState_11_0v(mag, state);
1107 break;
1108
1109 case 144:
1110 perturbState_12_0(mag, state);
1111 break;
1112
1113 case 145:
1114 perturbState_12_0v(mag, state);
1115 break;
1116
1117 case 156:
1118 perturbState_13_0(mag, state);
1119 break;
1120
1121 case 157:
1122 perturbState_13_0v(mag, state);
1123 break;
1124
1125 case 168:
1126 perturbState_14_0(mag, state);
1127 break;
1128
1129 case 169:
1130 perturbState_14_0v(mag, state);
1131 break;
1132
1133 case 180:
1134 perturbState_15_0(mag, state);
1135 break;
1136
1137 case 181:
1138 perturbState_15_0v(mag, state);
1139 break;
1140
1141 case 192:
1142 perturbState_16_0(mag, state);
1143 break;
1144
1145 case 193:
1146 perturbState_16_0v(mag, state);
1147 break;
1148
1149 case 204:
1150 perturbState_17_0(mag, state);
1151 break;
1152
1153 case 205:
1154 perturbState_17_0v(mag, state);
1155 break;
1156
1157 case 216:
1158 perturbState_18_0(mag, state);
1159 break;
1160
1161 case 217:
1162 perturbState_18_0v(mag, state);
1163 break;
1164
1165 case 228:
1166 perturbState_19_0(mag, state);
1167 break;
1168
1169 case 229:
1170 perturbState_19_0v(mag, state);
1171 break;
1172
1173 case 240:
1174 perturbState_20_0(mag, state);
1175 break;
1176
1177 case 241:
1178 perturbState_20_0v(mag, state);
1179 break;
1180
1181 case 252:
1182 perturbState_21_0(mag, state);
1183 break;
1184
1185 case 253:
1186 perturbState_21_0v(mag, state);
1187 break;
1188
1189 case 264:
1190 perturbState_22_0(mag, state);
1191 break;
1192
1193 case 265:
1194 perturbState_22_0v(mag, state);
1195 break;
1196
1197 case 276:
1198 perturbState_23_0(mag, state);
1199 break;
1200
1201 case 277:
1202 perturbState_23_0v(mag, state);
1203 break;
1204
1205 case 288:
1206 perturbState_24_0(mag, state);
1207 break;
1208
1209 case 289:
1210 perturbState_24_0v(mag, state);
1211 break;
1212
1213 case 300:
1214 perturbState_25_0(mag, state);
1215 break;
1216
1217 case 301:
1218 perturbState_25_0v(mag, state);
1219 break;
1220
1221 case 312:
1222 perturbState_26_0(mag, state);
1223 break;
1224
1225 case 313:
1226 perturbState_26_0v(mag, state);
1227 break;
1228 }
1229}
1230
1231void PlatformAssem_f0ca4364_1_computeDofBlendMatrix(const void *mech, size_t
1232 stageIdx, size_t primIdx, const double *state, int partialType, double *matrix)
1233{
1234 (void) mech;
1235 (void) stageIdx;
1236 (void) primIdx;
1237 (void) state;
1238 (void) partialType;
1239 (void) matrix;
1240 switch ((stageIdx * 6 + primIdx))
1241 {
1242 }
1243}
1244
1245void PlatformAssem_f0ca4364_1_projectPartiallyTargetedPos(const void *mech,
1246 size_t stageIdx, size_t primIdx, const double *origState, int partialType,
1247 double *state)
1248{
1249 (void) mech;
1250 (void) stageIdx;
1251 (void) primIdx;
1252 (void) origState;
1253 (void) partialType;
1254 (void) state;
1255 switch ((stageIdx * 6 + primIdx))
1256 {
1257 }
1258}
1259
1260void PlatformAssem_f0ca4364_1_propagateMotion(const void *mech, const double
1261 *rtdv, const double *state, double *motionData)
1262{
1263 double xx[691];
1264 (void) mech;
1265 (void) rtdv;
1266 xx[0] = 0.0;
1267 xx[1] = 0.7071067811865476;
1268 xx[2] = - xx[1];
1269 xx[3] = 0.9982060081755033;
1270 xx[4] = 0.5;
1271 xx[5] = xx[4] * state[6];
1272 xx[6] = cos(xx[5]);
1273 xx[7] = 7.822272946646824e-7;
1274 xx[8] = sin(xx[5]);
1275 xx[5] = 0.05987290897428056;
1276 xx[9] = 3.559887592452546e-6;
1277 xx[10] = - (xx[3] * xx[6] + xx[7] * xx[8]);
1278 xx[11] = xx[7] * xx[6] - xx[3] * xx[8];
1279 xx[12] = - (xx[5] * xx[6] + xx[9] * xx[8]);
1280 xx[13] = xx[9] * xx[6] - xx[5] * xx[8];
1281 xx[3] = xx[4] * state[7];
1282 xx[5] = 7.200670813652432e-6;
1283 xx[6] = sin(xx[3]);
1284 xx[7] = 0.9999999999734306;
1285 xx[8] = 1.135366319023148e-6;
1286 xx[14] = cos(xx[3]);
1287 xx[15] = - (xx[5] * xx[6]);
1288 xx[16] = xx[7] * xx[6];
1289 xx[17] = xx[8] * xx[6];
1290 pm_math_quatCompose(xx + 10, xx + 14, xx + 18);
1291 xx[3] = xx[4] * state[8];
1292 xx[6] = 0.1195309949245745;
1293 xx[9] = sin(xx[3]);
1294 xx[10] = 1.987929622149476e-6;
1295 xx[11] = 0.9928304695406913;
1296 xx[12] = cos(xx[3]);
1297 xx[13] = - (xx[6] * xx[9]);
1298 xx[14] = - (xx[10] * xx[9]);
1299 xx[15] = xx[11] * xx[9];
1300 pm_math_quatCompose(xx + 18, xx + 12, xx + 22);
1301 xx[16] = 2.651074505488933e-6;
1302 xx[17] = - 0.01576192360860613;
1303 xx[18] = 1.370770141144085e-6;
1304 pm_math_quatXform(xx + 22, xx + 16, xx + 19);
1305 xx[3] = 0.3895853754265615;
1306 xx[9] = xx[4] * state[12];
1307 xx[26] = cos(xx[9]);
1308 xx[27] = 0.389581900177037;
1309 xx[28] = sin(xx[9]);
1310 xx[9] = xx[3] * xx[26] - xx[27] * xx[28];
1311 xx[29] = 0.5901074779979933;
1312 xx[30] = 0.5901036711621462;
1313 xx[31] = xx[29] * xx[26] + xx[30] * xx[28];
1314 xx[32] = - xx[31];
1315 xx[33] = xx[30] * xx[26] - xx[29] * xx[28];
1316 xx[29] = xx[27] * xx[26] + xx[3] * xx[28];
1317 xx[3] = - xx[29];
1318 xx[26] = 1.587500000000011e-3;
1319 xx[27] = xx[33] * xx[26];
1320 xx[34] = xx[32];
1321 xx[35] = xx[33];
1322 xx[36] = xx[3];
1323 xx[28] = 0.02520954632904373;
1324 xx[30] = xx[28] * xx[29] + xx[26] * xx[31];
1325 xx[37] = xx[33] * xx[28];
1326 xx[38] = xx[27];
1327 xx[39] = xx[30];
1328 xx[40] = xx[37];
1329 pm_math_cross3(xx + 34, xx + 38, xx + 41);
1330 xx[34] = 2.0;
1331 xx[35] = 0.1564468326892218 - ((xx[9] * xx[27] + xx[41]) * xx[34] - xx[28]);
1332 xx[27] = 0.02992367610368172 - (xx[9] * xx[30] + xx[42]) * xx[34];
1333 xx[30] = 0.01163189793971064 + xx[26] + xx[34] * (xx[43] + xx[9] * xx[37]);
1334 xx[36] = - xx[30];
1335 xx[37] = xx[4] * state[14];
1336 xx[38] = cos(xx[37]);
1337 xx[39] = sin(xx[37]);
1338 xx[37] = 5.376764528053357e-12;
1339 xx[40] = 7.748428954013064e-12;
1340 xx[41] = xx[37] * xx[38] + xx[40] * xx[39];
1341 xx[42] = 0.03194045367095624 - (xx[34] * xx[41] * xx[39] - xx[40]);
1342 xx[43] = xx[34] * xx[41] * xx[38] - xx[37];
1343 xx[41] = - xx[43];
1344 xx[44] = 4.0000000045273e-3;
1345 xx[45] = xx[26] - (xx[44] - (xx[38] * xx[44] * xx[38] + xx[44] * xx[39] * xx
1346 [39]) * xx[34]);
1347 xx[44] = 3.980251324392935e-7;
1348 xx[46] = 0.999999999999921;
1349 xx[47] = xx[44] * state[19] - xx[46] * state[16];
1350 xx[48] = - (xx[44] * state[18] + xx[46] * state[17]);
1351 xx[49] = - (xx[46] * state[18] - xx[44] * state[17]);
1352 xx[50] = - (xx[44] * state[16] + xx[46] * state[19]);
1353 xx[51] = 3.641162862673871e-8;
1354 xx[52] = 0.04575000000717538;
1355 xx[53] = - 2.926046524752066e-7;
1356 pm_math_quatXform(xx + 47, xx + 51, xx + 54);
1357 xx[57] = 3.980251340548381e-7;
1358 xx[58] = xx[46] * state[26] - xx[57] * state[23];
1359 xx[59] = xx[46] * state[25] - xx[57] * state[24];
1360 xx[60] = xx[57] * state[25] + xx[46] * state[24];
1361 xx[61] = - xx[60];
1362 xx[62] = xx[57] * state[26] + xx[46] * state[23];
1363 xx[57] = - xx[62];
1364 xx[63] = xx[58];
1365 xx[64] = xx[59];
1366 xx[65] = xx[61];
1367 xx[66] = xx[57];
1368 xx[67] = 7.599121945184391e-12;
1369 xx[68] = - 5.036130209737022e-12;
1370 xx[69] = 5.192027881355888e-12;
1371 pm_math_quatXform(xx + 63, xx + 67, xx + 70);
1372 xx[73] = 3.641924106626229e-8 + xx[70];
1373 xx[74] = 0.04574999999998041 + xx[71];
1374 xx[70] = 2.92603149291605e-7 + xx[72];
1375 xx[71] = xx[4] * state[30];
1376 xx[72] = cos(xx[71]);
1377 xx[75] = sin(xx[71]);
1378 xx[71] = 0.02540000000000185;
1379 xx[76] = xx[71] * xx[75];
1380 xx[77] = 6.817225262079063e-12 + xx[71] - xx[34] * xx[76] * xx[75];
1381 xx[78] = - xx[77];
1382 xx[79] = 5.61723311615081e-12 + xx[34] * xx[72] * xx[76];
1383 xx[76] = - xx[79];
1384 xx[80] = 0.152426400001803;
1385 xx[81] = xx[4] * state[32];
1386 xx[82] = cos(xx[81]);
1387 xx[83] = sin(xx[81]);
1388 xx[81] = 2.191920996097441e-12;
1389 xx[84] = xx[81] * xx[83];
1390 xx[85] = 3.368449963403463e-13;
1391 xx[86] = xx[85] * xx[83];
1392 xx[87] = 0.02539999999999815 + xx[34] * (xx[82] * xx[84] + xx[86] * xx[83]) -
1393 xx[85];
1394 xx[88] = - xx[87];
1395 xx[89] = xx[81] - (xx[84] * xx[83] - xx[82] * xx[86]) * xx[34];
1396 xx[84] = - xx[89];
1397 xx[86] = - 0.1524264000010511;
1398 xx[90] = 0.6123724356957949;
1399 xx[91] = xx[4] * state[34];
1400 xx[92] = sin(xx[91]);
1401 xx[93] = xx[90] * xx[92];
1402 xx[94] = cos(xx[91]);
1403 xx[91] = xx[90] * xx[94];
1404 xx[95] = xx[93] - xx[91];
1405 xx[96] = 0.3535533905932732;
1406 xx[97] = xx[96] * xx[94];
1407 xx[94] = xx[96] * xx[92];
1408 xx[92] = xx[97] + xx[94];
1409 xx[98] = - xx[92];
1410 xx[99] = xx[94] - xx[97];
1411 xx[94] = xx[93] + xx[91];
1412 xx[91] = - xx[94];
1413 xx[100] = xx[95];
1414 xx[101] = xx[98];
1415 xx[102] = xx[99];
1416 xx[103] = xx[91];
1417 xx[93] = 1.121202762681406e-11;
1418 xx[97] = 6.145027516349377e-13;
1419 xx[104] = - xx[93];
1420 xx[105] = - xx[97];
1421 xx[106] = - 3.999999999522439e-3;
1422 pm_math_quatXform(xx + 100, xx + 104, xx + 107);
1423 xx[104] = 0.1412410329922704 - xx[107];
1424 xx[105] = - xx[108];
1425 xx[106] = 0.05221615474387575 - xx[109];
1426 xx[107] = 0.3535533905932758;
1427 xx[109] = xx[4] * state[36];
1428 xx[110] = cos(xx[109]);
1429 xx[111] = xx[107] * xx[110];
1430 xx[112] = sin(xx[109]);
1431 xx[109] = xx[107] * xx[112];
1432 xx[113] = xx[111] + xx[109];
1433 xx[114] = - xx[113];
1434 xx[115] = 0.6123724356957934;
1435 xx[116] = xx[115] * xx[112];
1436 xx[112] = xx[115] * xx[110];
1437 xx[110] = xx[116] - xx[112];
1438 xx[117] = xx[112] + xx[116];
1439 xx[112] = - xx[117];
1440 xx[116] = xx[109] - xx[111];
1441 xx[118] = xx[114];
1442 xx[119] = xx[110];
1443 xx[120] = xx[112];
1444 xx[121] = xx[116];
1445 xx[109] = 3.881762117297072e-12;
1446 xx[111] = 3.80025733104361e-12;
1447 xx[122] = xx[109];
1448 xx[123] = - xx[111];
1449 xx[124] = 3.999999998874377e-3;
1450 pm_math_quatXform(xx + 118, xx + 122, xx + 125);
1451 xx[122] = 0.1412410329922711 + xx[125];
1452 xx[123] = - xx[122];
1453 xx[124] = - xx[126];
1454 xx[125] = 0.05221615474387407 - xx[127];
1455 xx[127] = xx[4] * state[38];
1456 xx[128] = cos(xx[127]);
1457 xx[129] = xx[107] * xx[128];
1458 xx[130] = sin(xx[127]);
1459 xx[127] = xx[107] * xx[130];
1460 xx[107] = xx[129] + xx[127];
1461 xx[131] = xx[115] * xx[128];
1462 xx[128] = xx[115] * xx[130];
1463 xx[115] = xx[131] - xx[128];
1464 xx[130] = xx[131] + xx[128];
1465 xx[128] = xx[129] - xx[127];
1466 xx[131] = xx[107];
1467 xx[132] = xx[115];
1468 xx[133] = xx[130];
1469 xx[134] = xx[128];
1470 xx[127] = 5.998698970888227e-12;
1471 xx[129] = 6.30935626036444e-12;
1472 xx[135] = - xx[127];
1473 xx[136] = - xx[129];
1474 xx[137] = 4.000000001735564e-3;
1475 pm_math_quatXform(xx + 131, xx + 135, xx + 138);
1476 xx[135] = 0.1158410329922713 + xx[138];
1477 xx[136] = - xx[135];
1478 xx[137] = - xx[139];
1479 xx[138] = 0.09621024525612379 - xx[140];
1480 xx[140] = xx[4] * state[40];
1481 xx[141] = sin(xx[140]);
1482 xx[142] = xx[90] * xx[141];
1483 xx[143] = cos(xx[140]);
1484 xx[140] = xx[90] * xx[143];
1485 xx[90] = xx[142] - xx[140];
1486 xx[144] = xx[96] * xx[143];
1487 xx[143] = xx[96] * xx[141];
1488 xx[96] = xx[144] + xx[143];
1489 xx[141] = - xx[96];
1490 xx[145] = xx[143] - xx[144];
1491 xx[143] = xx[142] + xx[140];
1492 xx[140] = - xx[143];
1493 xx[146] = xx[90];
1494 xx[147] = xx[141];
1495 xx[148] = xx[145];
1496 xx[149] = xx[140];
1497 xx[142] = 7.483145982728478e-12;
1498 xx[144] = 5.088251355846174e-12;
1499 xx[150] = - xx[142];
1500 xx[151] = xx[144];
1501 xx[152] = - 4.00000000521855e-3;
1502 pm_math_quatXform(xx + 146, xx + 150, xx + 153);
1503 xx[150] = 0.1158410329922703 - xx[153];
1504 xx[151] = - xx[154];
1505 xx[152] = 0.09621024525612519 - xx[155];
1506 xx[153] = 0.04233709306330295;
1507 xx[155] = xx[4] * state[42];
1508 xx[156] = cos(xx[155]);
1509 xx[157] = 0.04233598682685397;
1510 xx[158] = sin(xx[155]);
1511 xx[155] = xx[153] * xx[156] + xx[157] * xx[158];
1512 xx[159] = 0.7058357201813958;
1513 xx[160] = 0.7058407546227096;
1514 xx[161] = xx[159] * xx[158] - xx[160] * xx[156];
1515 xx[162] = xx[159] * xx[156] + xx[160] * xx[158];
1516 xx[163] = xx[153] * xx[158] - xx[157] * xx[156];
1517 xx[156] = 1.5875e-3;
1518 xx[158] = xx[156] * xx[162];
1519 xx[164] = xx[161] * xx[156] - xx[163] * xx[28];
1520 xx[165] = xx[28] * xx[162];
1521 xx[166] = - xx[158];
1522 xx[167] = xx[164];
1523 xx[168] = xx[165];
1524 pm_math_cross3(xx + 161, xx + 166, xx + 169);
1525 xx[166] = 0.06820673750794114 + (xx[169] - xx[158] * xx[155]) * xx[34] - xx[28];
1526 xx[158] = - xx[166];
1527 xx[167] = 0.02992188481855372 - (xx[155] * xx[164] + xx[170]) * xx[34];
1528 xx[164] = 0.1412955924490354 - (xx[34] * (xx[171] + xx[165] * xx[155]) - xx
1529 [156]);
1530 xx[165] = xx[4] * state[44];
1531 xx[168] = cos(xx[165]);
1532 xx[169] = sin(xx[165]);
1533 xx[165] = 0.0319404536709563;
1534 xx[170] = 3.107391981487723e-12;
1535 xx[171] = 9.83617579279345e-12;
1536 xx[172] = xx[170] * xx[169] - xx[171] * xx[168];
1537 xx[173] = xx[170] - xx[34] * xx[172] * xx[169];
1538 xx[174] = xx[165] - xx[173];
1539 xx[175] = xx[171] + xx[34] * xx[172] * xx[168];
1540 xx[172] = 7.175000002356807e-3;
1541 xx[176] = (xx[168] * xx[172] * xx[168] + xx[172] * xx[169] * xx[169]) * xx[34]
1542 - xx[172];
1543 xx[172] = xx[26] - xx[176];
1544 xx[177] = xx[44] * state[49] - xx[46] * state[46];
1545 xx[178] = xx[44] * state[48] + xx[46] * state[47];
1546 xx[179] = - xx[178];
1547 xx[180] = xx[46] * state[48] - xx[44] * state[47];
1548 xx[181] = - xx[180];
1549 xx[182] = xx[44] * state[46] + xx[46] * state[49];
1550 xx[183] = - xx[182];
1551 xx[184] = xx[177];
1552 xx[185] = xx[179];
1553 xx[186] = xx[181];
1554 xx[187] = xx[183];
1555 pm_math_quatXform(xx + 184, xx + 51, xx + 188);
1556 xx[191] = xx[4] * state[53];
1557 xx[192] = cos(xx[191]);
1558 xx[193] = sin(xx[191]);
1559 xx[191] = xx[153] * xx[192] + xx[157] * xx[193];
1560 xx[194] = xx[159] * xx[193] - xx[160] * xx[192];
1561 xx[195] = xx[159] * xx[192] + xx[160] * xx[193];
1562 xx[159] = xx[153] * xx[193] - xx[157] * xx[192];
1563 xx[196] = xx[194];
1564 xx[197] = xx[195];
1565 xx[198] = xx[159];
1566 xx[153] = xx[156] * xx[195];
1567 xx[157] = 0.02520954632904374;
1568 xx[160] = xx[194] * xx[156] - xx[159] * xx[157];
1569 xx[192] = xx[157] * xx[195];
1570 xx[199] = - xx[153];
1571 xx[200] = xx[160];
1572 xx[201] = xx[192];
1573 pm_math_cross3(xx + 196, xx + 199, xx + 202);
1574 xx[193] = 0.03266483819494233 - ((xx[202] - xx[153] * xx[191]) * xx[34] - xx
1575 [157]);
1576 xx[153] = 0.02992259737327991 - (xx[191] * xx[160] + xx[203]) * xx[34];
1577 xx[160] = 0.1534399415345039 - (xx[34] * (xx[204] + xx[192] * xx[191]) - xx
1578 [156]);
1579 xx[156] = xx[4] * state[55];
1580 xx[192] = cos(xx[156]);
1581 xx[196] = sin(xx[156]);
1582 xx[156] = 0.03194045367095631;
1583 xx[197] = 9.27756931389703e-12;
1584 xx[198] = 5.443558296964576e-12;
1585 xx[199] = xx[198] * xx[192] - xx[197] * xx[196];
1586 xx[200] = xx[197] + xx[34] * xx[199] * xx[196];
1587 xx[201] = xx[156] + xx[200];
1588 xx[202] = xx[198] - xx[34] * xx[199] * xx[192];
1589 xx[199] = - xx[202];
1590 xx[203] = 7.174999998974562e-3;
1591 xx[204] = (xx[192] * xx[203] * xx[192] + xx[203] * xx[196] * xx[196]) * xx[34]
1592 - xx[203];
1593 xx[203] = xx[26] - xx[204];
1594 xx[205] = xx[44] * state[60] - xx[46] * state[57];
1595 xx[206] = xx[44] * state[59] + xx[46] * state[58];
1596 xx[207] = - xx[206];
1597 xx[208] = xx[46] * state[59] - xx[44] * state[58];
1598 xx[209] = - xx[208];
1599 xx[210] = xx[44] * state[57] + xx[46] * state[60];
1600 xx[211] = - xx[210];
1601 xx[212] = xx[205];
1602 xx[213] = xx[207];
1603 xx[214] = xx[209];
1604 xx[215] = xx[211];
1605 pm_math_quatXform(xx + 212, xx + 51, xx + 216);
1606 xx[219] = 0.389585375426561;
1607 xx[220] = xx[4] * state[64];
1608 xx[221] = cos(xx[220]);
1609 xx[222] = 0.3895819001770367;
1610 xx[223] = sin(xx[220]);
1611 xx[220] = xx[219] * xx[221] - xx[222] * xx[223];
1612 xx[224] = 0.5901074779979936;
1613 xx[225] = 0.5901036711621467;
1614 xx[226] = xx[224] * xx[221] + xx[225] * xx[223];
1615 xx[227] = - xx[226];
1616 xx[228] = xx[225] * xx[221] - xx[224] * xx[223];
1617 xx[224] = xx[222] * xx[221] + xx[219] * xx[223];
1618 xx[219] = - xx[224];
1619 xx[221] = xx[228] * xx[26];
1620 xx[229] = xx[227];
1621 xx[230] = xx[228];
1622 xx[231] = xx[219];
1623 xx[222] = xx[28] * xx[224] + xx[26] * xx[226];
1624 xx[223] = xx[228] * xx[28];
1625 pm_math_cross3(xx + 229, xx + 221, xx + 232);
1626 xx[225] = 0.1165527193553521 - ((xx[220] * xx[221] + xx[232]) * xx[34] - xx[28]);
1627 xx[221] = 0.02992349485130436 - (xx[220] * xx[222] + xx[233]) * xx[34];
1628 xx[222] = 0.1050044054848736 + xx[26] + xx[34] * (xx[234] + xx[220] * xx[223]);
1629 xx[223] = - xx[222];
1630 xx[229] = xx[4] * state[66];
1631 xx[230] = cos(xx[229]);
1632 xx[231] = sin(xx[229]);
1633 xx[229] = 0.03194045367095626;
1634 xx[232] = 1.024070757638107e-11;
1635 xx[233] = 6.924287580811761e-12;
1636 xx[234] = xx[233] * xx[230] + xx[232] * xx[231];
1637 xx[235] = xx[232] - xx[34] * xx[234] * xx[231];
1638 xx[236] = xx[229] - xx[235];
1639 xx[237] = xx[233] - xx[34] * xx[234] * xx[230];
1640 xx[234] = - xx[237];
1641 xx[238] = 4.000000007367204e-3;
1642 xx[239] = xx[238] - (xx[230] * xx[238] * xx[230] + xx[238] * xx[231] * xx[231])
1643 * xx[34];
1644 xx[238] = xx[26] - xx[239];
1645 xx[240] = xx[44] * state[71] - xx[46] * state[68];
1646 xx[241] = xx[44] * state[70] + xx[46] * state[69];
1647 xx[242] = - xx[241];
1648 xx[243] = xx[46] * state[70] - xx[44] * state[69];
1649 xx[244] = - xx[243];
1650 xx[245] = xx[44] * state[68] + xx[46] * state[71];
1651 xx[246] = - xx[245];
1652 xx[247] = xx[240];
1653 xx[248] = xx[242];
1654 xx[249] = xx[244];
1655 xx[250] = xx[246];
1656 pm_math_quatXform(xx + 247, xx + 51, xx + 251);
1657 xx[254] = 0.3162553791961485;
1658 xx[255] = xx[4] * state[75];
1659 xx[256] = cos(xx[255]);
1660 xx[257] = 0.3162538200043588;
1661 xx[258] = sin(xx[255]);
1662 xx[255] = xx[254] * xx[256] - xx[257] * xx[258];
1663 xx[259] = 0.6324445710612965;
1664 xx[260] = 0.6324396579890005;
1665 xx[261] = xx[259] * xx[256] + xx[260] * xx[258];
1666 xx[262] = xx[259] * xx[258] - xx[260] * xx[256];
1667 xx[259] = xx[257] * xx[256] + xx[254] * xx[258];
1668 xx[254] = - xx[259];
1669 xx[256] = xx[262] * xx[26];
1670 xx[263] = xx[261];
1671 xx[264] = xx[262];
1672 xx[265] = xx[254];
1673 xx[257] = xx[28] * xx[259] - xx[26] * xx[261];
1674 xx[258] = xx[262] * xx[28];
1675 pm_math_cross3(xx + 263, xx + 256, xx + 266);
1676 xx[260] = 0.08825748853214695 + (xx[255] * xx[256] + xx[266]) * xx[34] - xx[28];
1677 xx[256] = - xx[260];
1678 xx[263] = 0.02992204813763048 - (xx[255] * xx[257] + xx[267]) * xx[34];
1679 xx[257] = 0.1297164406712666 + xx[26] + xx[34] * (xx[268] + xx[255] * xx[258]);
1680 xx[258] = - xx[257];
1681 xx[264] = xx[4] * state[77];
1682 xx[265] = cos(xx[264]);
1683 xx[266] = sin(xx[264]);
1684 xx[264] = 5.157931604049537e-12;
1685 xx[267] = 9.862118968695376e-13;
1686 xx[268] = xx[264] * xx[266] - xx[267] * xx[265];
1687 xx[269] = xx[264] - xx[34] * xx[268] * xx[266];
1688 xx[270] = xx[229] - xx[269];
1689 xx[271] = xx[267] + xx[34] * xx[268] * xx[265];
1690 xx[268] = 3.99999999470772e-3;
1691 xx[272] = xx[268] - (xx[265] * xx[268] * xx[265] + xx[268] * xx[266] * xx[266])
1692 * xx[34];
1693 xx[268] = xx[26] - xx[272];
1694 xx[273] = xx[44] * state[82] - xx[46] * state[79];
1695 xx[274] = xx[44] * state[81] + xx[46] * state[80];
1696 xx[275] = - xx[274];
1697 xx[276] = xx[46] * state[81] - xx[44] * state[80];
1698 xx[277] = - xx[276];
1699 xx[278] = xx[44] * state[79] + xx[46] * state[82];
1700 xx[279] = - xx[278];
1701 xx[280] = xx[273];
1702 xx[281] = xx[275];
1703 xx[282] = xx[277];
1704 xx[283] = xx[279];
1705 pm_math_quatXform(xx + 280, xx + 51, xx + 284);
1706 xx[287] = 0.3162538200043575;
1707 xx[288] = xx[4] * state[86];
1708 xx[289] = sin(xx[288]);
1709 xx[290] = 0.3162553791961478;
1710 xx[291] = cos(xx[288]);
1711 xx[288] = xx[287] * xx[289] - xx[290] * xx[291];
1712 xx[292] = 0.6324445710612973;
1713 xx[293] = 0.6324396579890008;
1714 xx[294] = xx[292] * xx[291] + xx[293] * xx[289];
1715 xx[295] = - xx[294];
1716 xx[296] = xx[293] * xx[291] - xx[292] * xx[289];
1717 xx[292] = xx[287] * xx[291] + xx[290] * xx[289];
1718 xx[287] = 1.587499999999983e-3;
1719 xx[289] = xx[296] * xx[287];
1720 xx[297] = xx[295];
1721 xx[298] = xx[296];
1722 xx[299] = xx[292];
1723 xx[290] = xx[287] * xx[294] - xx[28] * xx[292];
1724 xx[291] = xx[296] * xx[28];
1725 pm_math_cross3(xx + 297, xx + 289, xx + 300);
1726 xx[293] = 0.1492477869940503 + (xx[288] * xx[289] + xx[300]) * xx[34] - xx[28];
1727 xx[289] = - xx[293];
1728 xx[297] = 0.02992151662180351 - (xx[288] * xx[290] + xx[301]) * xx[34];
1729 xx[290] = 0.04838166497694621 + xx[287] + xx[34] * (xx[302] + xx[288] * xx[291]);
1730 xx[287] = - xx[290];
1731 xx[291] = xx[4] * state[88];
1732 xx[4] = cos(xx[291]);
1733 xx[298] = sin(xx[291]);
1734 xx[291] = 0.03194045367095628;
1735 xx[299] = 1.600627075326599e-13;
1736 xx[300] = 8.497959654019115e-12;
1737 xx[301] = xx[299] * xx[298] - xx[300] * xx[4];
1738 xx[302] = xx[299] - xx[34] * xx[301] * xx[298];
1739 xx[303] = xx[291] - xx[302];
1740 xx[304] = xx[300] + xx[34] * xx[301] * xx[4];
1741 xx[301] = 1.587500000000039e-3;
1742 xx[305] = 3.999999996613603e-3;
1743 xx[306] = xx[305] - (xx[4] * xx[305] * xx[4] + xx[305] * xx[298] * xx[298]) *
1744 xx[34];
1745 xx[305] = xx[301] - xx[306];
1746 xx[307] = xx[44] * state[93] - xx[46] * state[90];
1747 xx[308] = xx[44] * state[92] + xx[46] * state[91];
1748 xx[309] = - xx[308];
1749 xx[310] = xx[46] * state[92] - xx[44] * state[91];
1750 xx[311] = - xx[310];
1751 xx[312] = xx[44] * state[90] + xx[46] * state[93];
1752 xx[313] = - xx[312];
1753 xx[314] = xx[307];
1754 xx[315] = xx[309];
1755 xx[316] = xx[311];
1756 xx[317] = xx[313];
1757 pm_math_quatXform(xx + 314, xx + 51, xx + 318);
1758 xx[321] = - (xx[228] * xx[231] + xx[230] * xx[226]);
1759 xx[322] = - (xx[220] * xx[230] - xx[231] * xx[224]);
1760 xx[323] = xx[220] * xx[231] + xx[230] * xx[224];
1761 xx[224] = xx[228] * xx[230] - xx[231] * xx[226];
1762 xx[324] = xx[220];
1763 xx[325] = xx[227];
1764 xx[326] = xx[228];
1765 xx[327] = xx[219];
1766 xx[328] = xx[236];
1767 xx[329] = xx[234];
1768 xx[330] = xx[238];
1769 pm_math_quatXform(xx + 324, xx + 328, xx + 331);
1770 xx[226] = xx[331] + xx[225];
1771 xx[334] = xx[332] + xx[221];
1772 xx[331] = xx[333] - xx[222];
1773 xx[335] = xx[321];
1774 xx[336] = xx[322];
1775 xx[337] = xx[323];
1776 xx[338] = xx[224];
1777 pm_math_quatCompose(xx + 335, xx + 247, xx + 339);
1778 pm_math_quatXform(xx + 335, xx + 251, xx + 343);
1779 xx[222] = - (xx[33] * xx[39] + xx[38] * xx[31]);
1780 xx[332] = - (xx[9] * xx[38] - xx[39] * xx[29]);
1781 xx[333] = xx[9] * xx[39] + xx[38] * xx[29];
1782 xx[29] = xx[33] * xx[38] - xx[39] * xx[31];
1783 xx[335] = xx[9];
1784 xx[336] = xx[32];
1785 xx[337] = xx[33];
1786 xx[338] = xx[3];
1787 xx[346] = xx[42];
1788 xx[347] = xx[41];
1789 xx[348] = xx[45];
1790 pm_math_quatXform(xx + 335, xx + 346, xx + 349);
1791 xx[31] = xx[349] + xx[35];
1792 xx[352] = xx[350] + xx[27];
1793 xx[349] = xx[351] - xx[30];
1794 xx[353] = xx[222];
1795 xx[354] = xx[332];
1796 xx[355] = xx[333];
1797 xx[356] = xx[29];
1798 pm_math_quatCompose(xx + 353, xx + 47, xx + 357);
1799 pm_math_quatXform(xx + 353, xx + 54, xx + 361);
1800 xx[30] = xx[361] + xx[31];
1801 xx[350] = xx[362] + xx[352];
1802 xx[351] = xx[363] + xx[349];
1803 pm_math_quatCompose(xx + 357, xx + 63, xx + 353);
1804 xx[361] = xx[73];
1805 xx[362] = xx[74];
1806 xx[363] = xx[70];
1807 pm_math_quatXform(xx + 357, xx + 361, xx + 364);
1808 xx[367] = xx[364] + xx[30];
1809 xx[368] = xx[365] + xx[350];
1810 xx[364] = xx[366] + xx[351];
1811 xx[365] = xx[72] * xx[353] - xx[356] * xx[75];
1812 xx[366] = xx[72] * xx[354] + xx[355] * xx[75];
1813 xx[369] = xx[72] * xx[355] - xx[354] * xx[75];
1814 xx[370] = xx[353] * xx[75] + xx[72] * xx[356];
1815 xx[371] = xx[78];
1816 xx[372] = xx[76];
1817 xx[373] = xx[80];
1818 pm_math_quatXform(xx + 353, xx + 371, xx + 374);
1819 xx[377] = xx[374] + xx[367];
1820 xx[378] = xx[375] + xx[368];
1821 xx[374] = xx[376] + xx[364];
1822 xx[379] = xx[365];
1823 xx[380] = xx[366];
1824 xx[381] = xx[369];
1825 xx[382] = xx[370];
1826 xx[383] = xx[88];
1827 xx[384] = xx[84];
1828 xx[385] = xx[86];
1829 pm_math_quatXform(xx + 379, xx + 383, xx + 386);
1830 xx[375] = xx[230] * xx[252] + xx[251] * xx[231];
1831 xx[376] = xx[72] * xx[82] + xx[75] * xx[83];
1832 xx[389] = xx[82] * xx[75] - xx[72] * xx[83];
1833 xx[390] = xx[75] * xx[89];
1834 xx[391] = xx[75] * xx[87];
1835 xx[392] = xx[34] * (xx[72] * xx[390] + xx[391] * xx[75]) - xx[87] - xx[77];
1836 xx[87] = (xx[390] * xx[75] - xx[72] * xx[391]) * xx[34] - xx[89] - xx[79];
1837 xx[89] = 7.519262990030029e-13;
1838 xx[390] = xx[376] * xx[58] + xx[62] * xx[389];
1839 xx[391] = xx[376] * xx[59] - xx[60] * xx[389];
1840 xx[393] = - (xx[60] * xx[376] + xx[59] * xx[389]);
1841 xx[60] = xx[58] * xx[389] - xx[62] * xx[376];
1842 xx[394] = xx[392];
1843 xx[395] = xx[87];
1844 xx[396] = xx[89];
1845 pm_math_quatXform(xx + 63, xx + 394, xx + 397);
1846 xx[62] = xx[397] + xx[73];
1847 xx[394] = xx[398] + xx[74];
1848 xx[395] = xx[399] + xx[70];
1849 xx[396] = xx[390];
1850 xx[397] = xx[391];
1851 xx[398] = xx[393];
1852 xx[399] = xx[60];
1853 pm_math_quatCompose(xx + 47, xx + 396, xx + 400);
1854 xx[396] = xx[62];
1855 xx[397] = xx[394];
1856 xx[398] = xx[395];
1857 pm_math_quatXform(xx + 47, xx + 396, xx + 404);
1858 xx[396] = xx[404] + xx[54];
1859 xx[397] = xx[405] + xx[55];
1860 xx[398] = xx[406] + xx[56];
1861 xx[399] = xx[397] * xx[38] + xx[396] * xx[39];
1862 xx[404] = - (xx[196] * xx[195] - xx[194] * xx[192]);
1863 xx[405] = - (xx[192] * xx[191] + xx[159] * xx[196]);
1864 xx[406] = xx[196] * xx[191] - xx[159] * xx[192];
1865 xx[407] = xx[194] * xx[196] + xx[192] * xx[195];
1866 xx[408] = xx[191];
1867 xx[409] = xx[194];
1868 xx[410] = xx[195];
1869 xx[411] = xx[159];
1870 xx[412] = xx[201];
1871 xx[413] = xx[199];
1872 xx[414] = xx[203];
1873 pm_math_quatXform(xx + 408, xx + 412, xx + 415);
1874 xx[418] = xx[415] + xx[193];
1875 xx[419] = xx[416] + xx[153];
1876 xx[415] = xx[417] + xx[160];
1877 pm_math_quatCompose(xx + 404, xx + 212, xx + 420);
1878 pm_math_quatXform(xx + 404, xx + 216, xx + 424);
1879 pm_math_quatCompose(xx + 379, xx + 100, xx + 427);
1880 pm_math_quatXform(xx + 379, xx + 104, xx + 431);
1881 xx[416] = xx[192] * xx[217] + xx[216] * xx[196];
1882 xx[417] = xx[72] * xx[95] + xx[94] * xx[75];
1883 xx[434] = - (xx[92] * xx[72] + xx[75] * xx[99]);
1884 xx[435] = xx[72] * xx[99] - xx[92] * xx[75];
1885 xx[92] = xx[75] * xx[95] - xx[94] * xx[72];
1886 xx[94] = xx[108] * xx[75];
1887 xx[436] = xx[75] * xx[104];
1888 xx[437] = xx[104] + xx[34] * (xx[72] * xx[94] - xx[436] * xx[75]) - xx[77];
1889 xx[438] = (xx[72] * xx[436] + xx[94] * xx[75]) * xx[34] - xx[108] - xx[79];
1890 xx[94] = xx[106] + xx[80];
1891 xx[439] = xx[417];
1892 xx[440] = xx[434];
1893 xx[441] = xx[435];
1894 xx[442] = xx[92];
1895 pm_math_quatCompose(xx + 63, xx + 439, xx + 443);
1896 xx[439] = xx[437];
1897 xx[440] = xx[438];
1898 xx[441] = xx[94];
1899 pm_math_quatXform(xx + 63, xx + 439, xx + 447);
1900 xx[108] = xx[447] + xx[73];
1901 xx[436] = xx[448] + xx[74];
1902 xx[439] = xx[449] + xx[70];
1903 pm_math_quatCompose(xx + 47, xx + 443, xx + 447);
1904 xx[440] = xx[108];
1905 xx[441] = xx[436];
1906 xx[442] = xx[439];
1907 pm_math_quatXform(xx + 47, xx + 440, xx + 451);
1908 xx[440] = xx[451] + xx[54];
1909 xx[441] = xx[452] + xx[55];
1910 xx[442] = xx[453] + xx[56];
1911 xx[451] = xx[441] * xx[38] + xx[440] * xx[39];
1912 xx[452] = - (xx[262] * xx[266] - xx[265] * xx[261]);
1913 xx[453] = - (xx[255] * xx[265] - xx[266] * xx[259]);
1914 xx[454] = xx[255] * xx[266] + xx[265] * xx[259];
1915 xx[259] = xx[266] * xx[261] + xx[262] * xx[265];
1916 xx[455] = xx[255];
1917 xx[456] = xx[261];
1918 xx[457] = xx[262];
1919 xx[458] = xx[254];
1920 xx[459] = xx[270];
1921 xx[460] = xx[271];
1922 xx[461] = xx[268];
1923 pm_math_quatXform(xx + 455, xx + 459, xx + 462);
1924 xx[465] = xx[462] - xx[260];
1925 xx[260] = xx[463] + xx[263];
1926 xx[462] = xx[464] - xx[257];
1927 xx[466] = xx[452];
1928 xx[467] = xx[453];
1929 xx[468] = xx[454];
1930 xx[469] = xx[259];
1931 pm_math_quatCompose(xx + 466, xx + 280, xx + 470);
1932 pm_math_quatXform(xx + 466, xx + 284, xx + 474);
1933 pm_math_quatCompose(xx + 379, xx + 118, xx + 466);
1934 pm_math_quatXform(xx + 379, xx + 123, xx + 477);
1935 xx[257] = xx[265] * xx[285] + xx[284] * xx[266];
1936 xx[463] = - (xx[113] * xx[72] + xx[75] * xx[116]);
1937 xx[464] = xx[72] * xx[110] + xx[117] * xx[75];
1938 xx[480] = xx[75] * xx[110] - xx[117] * xx[72];
1939 xx[117] = xx[72] * xx[116] - xx[113] * xx[75];
1940 xx[113] = xx[126] * xx[75];
1941 xx[481] = xx[75] * xx[122];
1942 xx[482] = xx[34] * (xx[72] * xx[113] + xx[481] * xx[75]) - xx[122] - xx[77];
1943 xx[122] = (xx[113] * xx[75] - xx[72] * xx[481]) * xx[34] - xx[126] - xx[79];
1944 xx[113] = xx[125] + xx[80];
1945 xx[483] = xx[463];
1946 xx[484] = xx[464];
1947 xx[485] = xx[480];
1948 xx[486] = xx[117];
1949 pm_math_quatCompose(xx + 63, xx + 483, xx + 487);
1950 xx[483] = xx[482];
1951 xx[484] = xx[122];
1952 xx[485] = xx[113];
1953 pm_math_quatXform(xx + 63, xx + 483, xx + 491);
1954 xx[126] = xx[491] + xx[73];
1955 xx[481] = xx[492] + xx[74];
1956 xx[483] = xx[493] + xx[70];
1957 pm_math_quatCompose(xx + 47, xx + 487, xx + 491);
1958 xx[484] = xx[126];
1959 xx[485] = xx[481];
1960 xx[486] = xx[483];
1961 pm_math_quatXform(xx + 47, xx + 484, xx + 495);
1962 xx[484] = xx[495] + xx[54];
1963 xx[485] = xx[496] + xx[55];
1964 xx[486] = xx[497] + xx[56];
1965 xx[495] = xx[485] * xx[38] + xx[484] * xx[39];
1966 xx[496] = - (xx[296] * xx[298] + xx[4] * xx[294]);
1967 xx[497] = - (xx[288] * xx[4] + xx[298] * xx[292]);
1968 xx[498] = xx[288] * xx[298] - xx[4] * xx[292];
1969 xx[499] = xx[296] * xx[4] - xx[298] * xx[294];
1970 xx[500] = xx[288];
1971 xx[501] = xx[295];
1972 xx[502] = xx[296];
1973 xx[503] = xx[292];
1974 pm_math_quatXform(xx + 500, xx + 303, xx + 504);
1975 xx[294] = xx[504] - xx[293];
1976 xx[293] = xx[505] + xx[297];
1977 xx[504] = xx[506] - xx[290];
1978 pm_math_quatCompose(xx + 496, xx + 314, xx + 505);
1979 pm_math_quatXform(xx + 496, xx + 318, xx + 509);
1980 pm_math_quatCompose(xx + 379, xx + 131, xx + 512);
1981 pm_math_quatXform(xx + 379, xx + 136, xx + 516);
1982 xx[290] = xx[4] * xx[319] + xx[318] * xx[298];
1983 xx[519] = xx[107] * xx[72] - xx[75] * xx[128];
1984 xx[520] = xx[72] * xx[115] - xx[130] * xx[75];
1985 xx[521] = xx[130] * xx[72] + xx[75] * xx[115];
1986 xx[522] = xx[72] * xx[128] + xx[107] * xx[75];
1987 xx[523] = xx[139] * xx[75];
1988 xx[524] = xx[75] * xx[135];
1989 xx[525] = xx[34] * (xx[72] * xx[523] + xx[524] * xx[75]) - xx[135] - xx[77];
1990 xx[135] = (xx[523] * xx[75] - xx[72] * xx[524]) * xx[34] - xx[139] - xx[79];
1991 xx[139] = xx[138] + xx[80];
1992 pm_math_quatCompose(xx + 63, xx + 519, xx + 526);
1993 xx[530] = xx[525];
1994 xx[531] = xx[135];
1995 xx[532] = xx[139];
1996 pm_math_quatXform(xx + 63, xx + 530, xx + 533);
1997 xx[523] = xx[533] + xx[73];
1998 xx[524] = xx[534] + xx[74];
1999 xx[530] = xx[535] + xx[70];
2000 pm_math_quatCompose(xx + 47, xx + 526, xx + 531);
2001 xx[535] = xx[523];
2002 xx[536] = xx[524];
2003 xx[537] = xx[530];
2004 pm_math_quatXform(xx + 47, xx + 535, xx + 538);
2005 xx[535] = xx[538] + xx[54];
2006 xx[536] = xx[539] + xx[55];
2007 xx[537] = xx[540] + xx[56];
2008 xx[538] = xx[536] * xx[38] + xx[535] * xx[39];
2009 xx[539] = - (xx[169] * xx[162] - xx[161] * xx[168]);
2010 xx[540] = - (xx[168] * xx[155] + xx[163] * xx[169]);
2011 xx[541] = xx[169] * xx[155] - xx[163] * xx[168];
2012 xx[542] = xx[161] * xx[169] + xx[168] * xx[162];
2013 xx[543] = xx[155];
2014 xx[544] = xx[161];
2015 xx[545] = xx[162];
2016 xx[546] = xx[163];
2017 xx[547] = xx[174];
2018 xx[548] = xx[175];
2019 xx[549] = xx[172];
2020 pm_math_quatXform(xx + 543, xx + 547, xx + 550);
2021 xx[553] = xx[550] - xx[166];
2022 xx[166] = xx[551] + xx[167];
2023 xx[550] = xx[552] + xx[164];
2024 pm_math_quatCompose(xx + 539, xx + 184, xx + 554);
2025 pm_math_quatXform(xx + 539, xx + 188, xx + 558);
2026 pm_math_quatCompose(xx + 379, xx + 146, xx + 561);
2027 pm_math_quatXform(xx + 379, xx + 150, xx + 565);
2028 xx[379] = xx[168] * xx[189] + xx[188] * xx[169];
2029 xx[380] = xx[72] * xx[90] + xx[143] * xx[75];
2030 xx[381] = - (xx[96] * xx[72] + xx[75] * xx[145]);
2031 xx[382] = xx[72] * xx[145] - xx[96] * xx[75];
2032 xx[96] = xx[75] * xx[90] - xx[143] * xx[72];
2033 xx[143] = xx[154] * xx[75];
2034 xx[551] = xx[75] * xx[150];
2035 xx[552] = xx[150] + xx[34] * (xx[72] * xx[143] - xx[551] * xx[75]) - xx[77];
2036 xx[77] = (xx[72] * xx[551] + xx[143] * xx[75]) * xx[34] - xx[154] - xx[79];
2037 xx[79] = xx[152] + xx[80];
2038 xx[568] = xx[380];
2039 xx[569] = xx[381];
2040 xx[570] = xx[382];
2041 xx[571] = xx[96];
2042 pm_math_quatCompose(xx + 63, xx + 568, xx + 572);
2043 xx[568] = xx[552];
2044 xx[569] = xx[77];
2045 xx[570] = xx[79];
2046 pm_math_quatXform(xx + 63, xx + 568, xx + 576);
2047 xx[143] = xx[576] + xx[73];
2048 xx[154] = xx[577] + xx[74];
2049 xx[551] = xx[578] + xx[70];
2050 pm_math_quatCompose(xx + 47, xx + 572, xx + 568);
2051 xx[576] = xx[143];
2052 xx[577] = xx[154];
2053 xx[578] = xx[551];
2054 pm_math_quatXform(xx + 47, xx + 576, xx + 579);
2055 xx[576] = xx[579] + xx[54];
2056 xx[577] = xx[580] + xx[55];
2057 xx[578] = xx[581] + xx[56];
2058 xx[579] = xx[577] * xx[38] + xx[576] * xx[39];
2059 xx[580] = xx[1] * xx[24];
2060 xx[581] = xx[1] * xx[25];
2061 xx[582] = xx[580] + xx[581];
2062 xx[583] = xx[580] - xx[581];
2063 xx[580] = xx[1] * xx[22];
2064 xx[581] = xx[1] * xx[23];
2065 xx[584] = - (xx[580] + xx[581]);
2066 xx[585] = xx[581] - xx[580];
2067 xx[580] = 0.5000000000000001 * xx[19];
2068 xx[581] = (xx[580] + xx[580]) * xx[34] - xx[19] - state[0];
2069 xx[580] = 1.414213562373095 * (xx[1] * xx[21] - xx[1] * xx[20]);
2070 xx[1] = state[2] - (xx[580] + xx[20]);
2071 xx[586] = state[1] - (xx[21] - xx[580]);
2072 pm_math_quatCompose(xx + 582, xx + 335, xx + 587);
2073 xx[591] = xx[35];
2074 xx[592] = xx[27];
2075 xx[593] = xx[36];
2076 pm_math_quatXform(xx + 582, xx + 591, xx + 594);
2077 xx[580] = xx[594] + xx[581];
2078 xx[597] = xx[595] + xx[1];
2079 xx[594] = xx[596] + xx[586];
2080 xx[595] = - (xx[589] * xx[39] - xx[38] * xx[588]);
2081 xx[596] = - (xx[38] * xx[587] + xx[590] * xx[39]);
2082 xx[598] = xx[587] * xx[39] - xx[38] * xx[590];
2083 xx[599] = xx[588] * xx[39] + xx[38] * xx[589];
2084 pm_math_quatXform(xx + 587, xx + 346, xx + 600);
2085 xx[603] = xx[600] + xx[580];
2086 xx[604] = xx[601] + xx[597];
2087 xx[600] = xx[602] + xx[594];
2088 xx[605] = xx[595];
2089 xx[606] = xx[596];
2090 xx[607] = xx[598];
2091 xx[608] = xx[599];
2092 pm_math_quatCompose(xx + 605, xx + 47, xx + 609);
2093 pm_math_quatXform(xx + 605, xx + 54, xx + 613);
2094 xx[601] = xx[613] + xx[603];
2095 xx[602] = xx[614] + xx[604];
2096 xx[605] = xx[615] + xx[600];
2097 pm_math_quatCompose(xx + 609, xx + 63, xx + 613);
2098 pm_math_quatXform(xx + 609, xx + 361, xx + 606);
2099 xx[617] = xx[606] + xx[601];
2100 xx[618] = xx[607] + xx[602];
2101 xx[606] = xx[608] + xx[605];
2102 pm_math_quatXform(xx + 613, xx + 371, xx + 619);
2103 xx[622] = - xx[5];
2104 xx[623] = xx[7];
2105 xx[624] = xx[8];
2106 pm_math_quatInverseXform(xx + 12, xx + 622, xx + 625);
2107 xx[5] = (1.0 - (xx[24] * xx[24] + xx[25] * xx[25]) * xx[34]) * state[9] + xx
2108 [625] * state[10] - xx[6] * state[11];
2109 xx[6] = xx[34] * (xx[23] * xx[24] - xx[22] * xx[25]) * state[9] + xx[626] *
2110 state[10] - xx[10] * state[11];
2111 xx[7] = xx[34] * (xx[22] * xx[24] + xx[23] * xx[25]) * state[9] + xx[627] *
2112 state[10] + xx[11] * state[11];
2113 xx[10] = state[3];
2114 xx[11] = state[4];
2115 xx[12] = state[5];
2116 pm_math_quatInverseXform(xx + 22, xx + 10, xx + 13);
2117 pm_math_cross3(xx + 16, xx + 5, xx + 10);
2118 xx[8] = xx[13] + xx[10];
2119 xx[16] = xx[14] + xx[11];
2120 xx[10] = xx[15] + xx[12];
2121 pm_math_quatInverseXform(xx + 335, xx + 5, xx + 11);
2122 xx[14] = xx[13] - state[13];
2123 pm_math_cross3(xx + 5, xx + 591, xx + 622);
2124 xx[591] = xx[622] + xx[8];
2125 xx[592] = xx[623] + xx[16];
2126 xx[593] = xx[624] + xx[10];
2127 pm_math_quatInverseXform(xx + 335, xx + 591, xx + 622);
2128 xx[13] = xx[623] - xx[28] * state[13];
2129 xx[15] = xx[38] * xx[12] + xx[11] * xx[39];
2130 xx[17] = xx[11] - xx[34] * xx[15] * xx[39];
2131 xx[18] = xx[12] - xx[34] * xx[15] * xx[38];
2132 xx[15] = xx[14] - (xx[38] * xx[38] * xx[14] + xx[39] * xx[14] * xx[39]) * xx
2133 [34] + state[15];
2134 xx[335] = xx[11];
2135 xx[336] = xx[12];
2136 xx[337] = xx[14];
2137 pm_math_cross3(xx + 335, xx + 346, xx + 591);
2138 xx[335] = xx[591] + xx[622];
2139 xx[336] = xx[592] + xx[13];
2140 xx[337] = xx[336] * xx[38] + xx[335] * xx[39];
2141 xx[338] = xx[335] - xx[34] * xx[337] * xx[39] - xx[37] * state[15];
2142 xx[37] = xx[336] - xx[34] * xx[337] * xx[38] + xx[40] * state[15];
2143 xx[40] = xx[593] + xx[624];
2144 xx[335] = xx[40] - (xx[38] * xx[40] * xx[38] + xx[40] * xx[39] * xx[39]) * xx
2145 [34];
2146 xx[346] = xx[17];
2147 xx[347] = xx[18];
2148 xx[348] = xx[15];
2149 pm_math_quatInverseXform(xx + 47, xx + 346, xx + 591);
2150 xx[40] = xx[44] * state[20];
2151 xx[336] = xx[44] * state[21];
2152 xx[337] = state[20] - (xx[44] * xx[40] - xx[46] * xx[336]) * xx[34];
2153 xx[607] = xx[591] + xx[337];
2154 xx[608] = state[21] - xx[34] * (xx[46] * xx[40] + xx[44] * xx[336]);
2155 xx[40] = xx[592] + xx[608];
2156 xx[336] = xx[593] + state[22];
2157 pm_math_cross3(xx + 346, xx + 54, xx + 591);
2158 xx[346] = xx[591] + xx[338];
2159 xx[347] = xx[592] + xx[37];
2160 xx[348] = xx[593] + xx[335];
2161 pm_math_quatInverseXform(xx + 47, xx + 346, xx + 591);
2162 xx[346] = xx[337];
2163 xx[347] = xx[608];
2164 xx[348] = state[22];
2165 pm_math_cross3(xx + 346, xx + 51, xx + 625);
2166 xx[337] = xx[591] + xx[625];
2167 xx[346] = xx[592] + xx[626];
2168 xx[347] = xx[593] + xx[627];
2169 xx[591] = xx[607];
2170 xx[592] = xx[40];
2171 xx[593] = xx[336];
2172 pm_math_quatInverseXform(xx + 63, xx + 591, xx + 625);
2173 xx[348] = xx[625] + state[27];
2174 xx[608] = xx[626] + state[28];
2175 xx[623] = xx[627] + state[29];
2176 pm_math_cross3(xx + 591, xx + 361, xx + 625);
2177 xx[361] = xx[625] + xx[337];
2178 xx[362] = xx[626] + xx[346];
2179 xx[363] = xx[627] + xx[347];
2180 pm_math_quatInverseXform(xx + 63, xx + 361, xx + 591);
2181 xx[63] = state[27];
2182 xx[64] = state[28];
2183 xx[65] = state[29];
2184 pm_math_cross3(xx + 63, xx + 67, xx + 361);
2185 xx[63] = xx[591] + xx[361];
2186 xx[64] = xx[592] + xx[362];
2187 xx[65] = xx[593] + xx[363];
2188 xx[66] = xx[608] * xx[75];
2189 xx[67] = xx[348] * xx[75];
2190 xx[68] = xx[348] + xx[34] * (xx[72] * xx[66] - xx[67] * xx[75]);
2191 xx[69] = xx[608] - (xx[72] * xx[67] + xx[66] * xx[75]) * xx[34];
2192 xx[66] = xx[623] + state[31];
2193 xx[361] = xx[348];
2194 xx[362] = xx[608];
2195 xx[363] = xx[623];
2196 pm_math_cross3(xx + 361, xx + 371, xx + 591);
2197 xx[67] = xx[591] + xx[63];
2198 xx[361] = xx[592] + xx[64];
2199 xx[362] = xx[361] * xx[75];
2200 xx[363] = xx[67] * xx[75];
2201 xx[371] = xx[67] + xx[34] * (xx[72] * xx[362] - xx[363] * xx[75]);
2202 xx[67] = xx[361] - (xx[72] * xx[363] + xx[362] * xx[75]) * xx[34] - xx[71] *
2203 state[31];
2204 xx[71] = xx[593] + xx[65];
2205 xx[361] = xx[83] * xx[69];
2206 xx[362] = xx[68] * xx[83];
2207 xx[591] = xx[68];
2208 xx[592] = xx[69];
2209 xx[593] = xx[66];
2210 pm_math_cross3(xx + 591, xx + 383, xx + 625);
2211 xx[363] = xx[625] + xx[371];
2212 xx[372] = xx[626] + xx[67];
2213 xx[373] = xx[372] * xx[83];
2214 xx[383] = xx[363] * xx[83];
2215 pm_math_quatInverseXform(xx + 100, xx + 591, xx + 628);
2216 pm_math_cross3(xx + 591, xx + 104, xx + 631);
2217 xx[634] = xx[631] + xx[371];
2218 xx[635] = xx[632] + xx[67];
2219 xx[636] = xx[633] + xx[71];
2220 pm_math_quatInverseXform(xx + 100, xx + 634, xx + 631);
2221 pm_math_quatInverseXform(xx + 118, xx + 591, xx + 100);
2222 pm_math_cross3(xx + 591, xx + 123, xx + 634);
2223 xx[637] = xx[634] + xx[371];
2224 xx[638] = xx[635] + xx[67];
2225 xx[639] = xx[636] + xx[71];
2226 pm_math_quatInverseXform(xx + 118, xx + 637, xx + 634);
2227 pm_math_quatInverseXform(xx + 131, xx + 591, xx + 118);
2228 pm_math_cross3(xx + 591, xx + 136, xx + 637);
2229 xx[640] = xx[637] + xx[371];
2230 xx[641] = xx[638] + xx[67];
2231 xx[642] = xx[639] + xx[71];
2232 pm_math_quatInverseXform(xx + 131, xx + 640, xx + 637);
2233 pm_math_quatInverseXform(xx + 146, xx + 591, xx + 131);
2234 pm_math_cross3(xx + 591, xx + 150, xx + 640);
2235 xx[591] = xx[640] + xx[371];
2236 xx[592] = xx[641] + xx[67];
2237 xx[593] = xx[642] + xx[71];
2238 pm_math_quatInverseXform(xx + 146, xx + 591, xx + 640);
2239 pm_math_quatInverseXform(xx + 543, xx + 5, xx + 146);
2240 xx[103] = xx[148] + state[43];
2241 xx[591] = xx[158];
2242 xx[592] = xx[167];
2243 xx[593] = xx[164];
2244 pm_math_cross3(xx + 5, xx + 591, xx + 643);
2245 xx[591] = xx[643] + xx[8];
2246 xx[592] = xx[644] + xx[16];
2247 xx[593] = xx[645] + xx[10];
2248 pm_math_quatInverseXform(xx + 543, xx + 591, xx + 643);
2249 xx[121] = xx[644] + xx[28] * state[43];
2250 xx[134] = xx[168] * xx[147] + xx[146] * xx[169];
2251 xx[148] = xx[146] - xx[34] * xx[134] * xx[169];
2252 xx[149] = xx[147] - xx[34] * xx[134] * xx[168];
2253 xx[134] = xx[103] - (xx[168] * xx[103] * xx[168] + xx[103] * xx[169] * xx[169])
2254 * xx[34] + state[45];
2255 xx[543] = xx[146];
2256 xx[544] = xx[147];
2257 xx[545] = xx[103];
2258 pm_math_cross3(xx + 543, xx + 547, xx + 591);
2259 xx[384] = xx[591] + xx[643];
2260 xx[385] = xx[592] + xx[121];
2261 xx[543] = xx[385] * xx[168] + xx[384] * xx[169];
2262 xx[544] = xx[384] - xx[34] * xx[543] * xx[169] - xx[171] * state[45];
2263 xx[171] = xx[385] - xx[34] * xx[543] * xx[168] - xx[170] * state[45];
2264 xx[170] = xx[593] + xx[645];
2265 xx[384] = xx[170] - (xx[168] * xx[170] * xx[168] + xx[170] * xx[169] * xx[169])
2266 * xx[34];
2267 xx[545] = xx[148];
2268 xx[546] = xx[149];
2269 xx[547] = xx[134];
2270 pm_math_quatInverseXform(xx + 184, xx + 545, xx + 591);
2271 xx[170] = xx[44] * state[50];
2272 xx[385] = xx[44] * state[51];
2273 xx[543] = state[50] - (xx[44] * xx[170] - xx[46] * xx[385]) * xx[34];
2274 xx[548] = state[51] - xx[34] * (xx[46] * xx[170] + xx[44] * xx[385]);
2275 pm_math_cross3(xx + 545, xx + 188, xx + 646);
2276 xx[545] = xx[646] + xx[544];
2277 xx[546] = xx[647] + xx[171];
2278 xx[547] = xx[648] + xx[384];
2279 pm_math_quatInverseXform(xx + 184, xx + 545, xx + 646);
2280 xx[184] = xx[543];
2281 xx[185] = xx[548];
2282 xx[186] = state[52];
2283 pm_math_cross3(xx + 184, xx + 51, xx + 545);
2284 pm_math_quatInverseXform(xx + 408, xx + 5, xx + 184);
2285 xx[170] = xx[186] + state[54];
2286 xx[649] = xx[193];
2287 xx[650] = xx[153];
2288 xx[651] = xx[160];
2289 pm_math_cross3(xx + 5, xx + 649, xx + 652);
2290 xx[649] = xx[652] + xx[8];
2291 xx[650] = xx[653] + xx[16];
2292 xx[651] = xx[654] + xx[10];
2293 pm_math_quatInverseXform(xx + 408, xx + 649, xx + 652);
2294 xx[186] = xx[653] + xx[157] * state[54];
2295 xx[157] = xx[192] * xx[185] + xx[184] * xx[196];
2296 xx[187] = xx[184] - xx[34] * xx[157] * xx[196];
2297 xx[385] = xx[185] - xx[34] * xx[157] * xx[192];
2298 xx[157] = xx[170] - (xx[192] * xx[170] * xx[192] + xx[170] * xx[196] * xx[196])
2299 * xx[34] + state[56];
2300 xx[408] = xx[184];
2301 xx[409] = xx[185];
2302 xx[410] = xx[170];
2303 pm_math_cross3(xx + 408, xx + 412, xx + 649);
2304 xx[408] = xx[649] + xx[652];
2305 xx[409] = xx[650] + xx[186];
2306 xx[410] = xx[409] * xx[192] + xx[408] * xx[196];
2307 xx[411] = xx[408] - xx[34] * xx[410] * xx[196] + xx[198] * state[56];
2308 xx[198] = xx[409] - xx[34] * xx[410] * xx[192] + xx[197] * state[56];
2309 xx[197] = xx[651] + xx[654];
2310 xx[408] = xx[197] - (xx[192] * xx[197] * xx[192] + xx[197] * xx[196] * xx[196])
2311 * xx[34];
2312 xx[412] = xx[187];
2313 xx[413] = xx[385];
2314 xx[414] = xx[157];
2315 pm_math_quatInverseXform(xx + 212, xx + 412, xx + 649);
2316 xx[197] = xx[44] * state[61];
2317 xx[409] = xx[44] * state[62];
2318 xx[410] = state[61] - (xx[44] * xx[197] - xx[46] * xx[409]) * xx[34];
2319 xx[549] = state[62] - xx[34] * (xx[46] * xx[197] + xx[44] * xx[409]);
2320 pm_math_cross3(xx + 412, xx + 216, xx + 655);
2321 xx[412] = xx[655] + xx[411];
2322 xx[413] = xx[656] + xx[198];
2323 xx[414] = xx[657] + xx[408];
2324 pm_math_quatInverseXform(xx + 212, xx + 412, xx + 655);
2325 xx[212] = xx[410];
2326 xx[213] = xx[549];
2327 xx[214] = state[63];
2328 pm_math_cross3(xx + 212, xx + 51, xx + 412);
2329 pm_math_quatInverseXform(xx + 324, xx + 5, xx + 212);
2330 xx[197] = xx[214] - state[65];
2331 xx[658] = xx[225];
2332 xx[659] = xx[221];
2333 xx[660] = xx[223];
2334 pm_math_cross3(xx + 5, xx + 658, xx + 661);
2335 xx[658] = xx[661] + xx[8];
2336 xx[659] = xx[662] + xx[16];
2337 xx[660] = xx[663] + xx[10];
2338 pm_math_quatInverseXform(xx + 324, xx + 658, xx + 661);
2339 xx[214] = xx[662] - xx[28] * state[65];
2340 xx[215] = xx[230] * xx[213] + xx[212] * xx[231];
2341 xx[324] = xx[212] - xx[34] * xx[215] * xx[231];
2342 xx[325] = xx[213] - xx[34] * xx[215] * xx[230];
2343 xx[215] = xx[197] - (xx[230] * xx[230] * xx[197] + xx[231] * xx[197] * xx[231])
2344 * xx[34] + state[67];
2345 xx[658] = xx[212];
2346 xx[659] = xx[213];
2347 xx[660] = xx[197];
2348 pm_math_cross3(xx + 658, xx + 328, xx + 664);
2349 xx[326] = xx[664] + xx[661];
2350 xx[327] = xx[665] + xx[214];
2351 xx[328] = xx[327] * xx[230] + xx[326] * xx[231];
2352 xx[329] = xx[326] - xx[34] * xx[328] * xx[231] + xx[233] * state[67];
2353 xx[233] = xx[327] - xx[34] * xx[328] * xx[230] - xx[232] * state[67];
2354 xx[232] = xx[666] + xx[663];
2355 xx[326] = xx[232] - (xx[230] * xx[232] * xx[230] + xx[232] * xx[231] * xx[231])
2356 * xx[34];
2357 xx[658] = xx[324];
2358 xx[659] = xx[325];
2359 xx[660] = xx[215];
2360 pm_math_quatInverseXform(xx + 247, xx + 658, xx + 664);
2361 xx[232] = xx[44] * state[72];
2362 xx[327] = xx[44] * state[73];
2363 xx[328] = state[72] - (xx[44] * xx[232] - xx[46] * xx[327]) * xx[34];
2364 xx[330] = state[73] - xx[34] * (xx[46] * xx[232] + xx[44] * xx[327]);
2365 pm_math_cross3(xx + 658, xx + 251, xx + 667);
2366 xx[658] = xx[667] + xx[329];
2367 xx[659] = xx[668] + xx[233];
2368 xx[660] = xx[669] + xx[326];
2369 pm_math_quatInverseXform(xx + 247, xx + 658, xx + 667);
2370 xx[247] = xx[328];
2371 xx[248] = xx[330];
2372 xx[249] = state[74];
2373 pm_math_cross3(xx + 247, xx + 51, xx + 658);
2374 pm_math_quatInverseXform(xx + 455, xx + 5, xx + 247);
2375 xx[232] = xx[249] - state[76];
2376 xx[670] = xx[256];
2377 xx[671] = xx[263];
2378 xx[672] = xx[258];
2379 pm_math_cross3(xx + 5, xx + 670, xx + 673);
2380 xx[670] = xx[673] + xx[8];
2381 xx[671] = xx[674] + xx[16];
2382 xx[672] = xx[675] + xx[10];
2383 pm_math_quatInverseXform(xx + 455, xx + 670, xx + 673);
2384 xx[249] = xx[674] - xx[28] * state[76];
2385 xx[250] = xx[265] * xx[248] + xx[247] * xx[266];
2386 xx[327] = xx[247] - xx[34] * xx[250] * xx[266];
2387 xx[409] = xx[248] - xx[34] * xx[250] * xx[265];
2388 xx[250] = xx[232] - (xx[265] * xx[265] * xx[232] + xx[266] * xx[232] * xx[266])
2389 * xx[34] + state[78];
2390 xx[455] = xx[247];
2391 xx[456] = xx[248];
2392 xx[457] = xx[232];
2393 pm_math_cross3(xx + 455, xx + 459, xx + 670);
2394 xx[455] = xx[670] + xx[673];
2395 xx[456] = xx[671] + xx[249];
2396 xx[457] = xx[456] * xx[265] + xx[455] * xx[266];
2397 xx[458] = xx[455] - xx[34] * xx[457] * xx[266] - xx[267] * state[78];
2398 xx[267] = xx[456] - xx[34] * xx[457] * xx[265] - xx[264] * state[78];
2399 xx[264] = xx[672] + xx[675];
2400 xx[455] = xx[264] - (xx[265] * xx[264] * xx[265] + xx[264] * xx[266] * xx[266])
2401 * xx[34];
2402 xx[459] = xx[327];
2403 xx[460] = xx[409];
2404 xx[461] = xx[250];
2405 pm_math_quatInverseXform(xx + 280, xx + 459, xx + 670);
2406 xx[264] = xx[44] * state[83];
2407 xx[456] = xx[44] * state[84];
2408 xx[457] = state[83] - (xx[44] * xx[264] - xx[46] * xx[456]) * xx[34];
2409 xx[625] = state[84] - xx[34] * (xx[46] * xx[264] + xx[44] * xx[456]);
2410 pm_math_cross3(xx + 459, xx + 284, xx + 676);
2411 xx[459] = xx[676] + xx[458];
2412 xx[460] = xx[677] + xx[267];
2413 xx[461] = xx[678] + xx[455];
2414 pm_math_quatInverseXform(xx + 280, xx + 459, xx + 676);
2415 xx[280] = xx[457];
2416 xx[281] = xx[625];
2417 xx[282] = state[85];
2418 pm_math_cross3(xx + 280, xx + 51, xx + 459);
2419 pm_math_quatInverseXform(xx + 500, xx + 5, xx + 280);
2420 xx[264] = xx[282] - state[87];
2421 xx[679] = xx[289];
2422 xx[680] = xx[297];
2423 xx[681] = xx[287];
2424 pm_math_cross3(xx + 5, xx + 679, xx + 682);
2425 xx[679] = xx[682] + xx[8];
2426 xx[680] = xx[683] + xx[16];
2427 xx[681] = xx[684] + xx[10];
2428 pm_math_quatInverseXform(xx + 500, xx + 679, xx + 682);
2429 xx[282] = xx[683] - xx[28] * state[87];
2430 xx[28] = xx[4] * xx[281] + xx[280] * xx[298];
2431 xx[283] = xx[280] - xx[34] * xx[28] * xx[298];
2432 xx[456] = xx[281] - xx[34] * xx[28] * xx[4];
2433 xx[28] = xx[264] - (xx[4] * xx[4] * xx[264] + xx[298] * xx[264] * xx[298]) *
2434 xx[34] + state[89];
2435 xx[500] = xx[280];
2436 xx[501] = xx[281];
2437 xx[502] = xx[264];
2438 pm_math_cross3(xx + 500, xx + 303, xx + 679);
2439 xx[500] = xx[679] + xx[682];
2440 xx[501] = xx[680] + xx[282];
2441 xx[502] = xx[501] * xx[4] + xx[500] * xx[298];
2442 xx[503] = xx[500] - xx[34] * xx[502] * xx[298] - xx[300] * state[89];
2443 xx[300] = xx[501] - xx[34] * xx[502] * xx[4] - xx[299] * state[89];
2444 xx[299] = xx[681] + xx[684];
2445 xx[500] = xx[299] - (xx[4] * xx[299] * xx[4] + xx[299] * xx[298] * xx[298]) *
2446 xx[34];
2447 xx[679] = xx[283];
2448 xx[680] = xx[456];
2449 xx[681] = xx[28];
2450 pm_math_quatInverseXform(xx + 314, xx + 679, xx + 685);
2451 xx[299] = xx[44] * state[94];
2452 xx[501] = xx[44] * state[95];
2453 xx[502] = state[94] - (xx[44] * xx[299] - xx[46] * xx[501]) * xx[34];
2454 xx[626] = state[95] - xx[34] * (xx[46] * xx[299] + xx[44] * xx[501]);
2455 pm_math_cross3(xx + 679, xx + 318, xx + 688);
2456 xx[679] = xx[688] + xx[503];
2457 xx[680] = xx[689] + xx[300];
2458 xx[681] = xx[690] + xx[500];
2459 pm_math_quatInverseXform(xx + 314, xx + 679, xx + 688);
2460 xx[314] = xx[502];
2461 xx[315] = xx[626];
2462 xx[316] = state[96];
2463 pm_math_cross3(xx + 314, xx + 51, xx + 679);
2464 motionData[0] = xx[0];
2465 motionData[1] = xx[0];
2466 motionData[2] = xx[2];
2467 motionData[3] = xx[2];
2468 motionData[4] = - state[0];
2469 motionData[5] = state[2];
2470 motionData[6] = state[1];
2471 motionData[7] = xx[22];
2472 motionData[8] = xx[23];
2473 motionData[9] = xx[24];
2474 motionData[10] = xx[25];
2475 motionData[11] = - xx[19];
2476 motionData[12] = - xx[20];
2477 motionData[13] = - xx[21];
2478 motionData[14] = xx[9];
2479 motionData[15] = xx[32];
2480 motionData[16] = xx[33];
2481 motionData[17] = xx[3];
2482 motionData[18] = xx[35];
2483 motionData[19] = xx[27];
2484 motionData[20] = xx[36];
2485 motionData[21] = xx[0];
2486 motionData[22] = - xx[38];
2487 motionData[23] = xx[39];
2488 motionData[24] = xx[0];
2489 motionData[25] = xx[42];
2490 motionData[26] = xx[41];
2491 motionData[27] = xx[45];
2492 motionData[28] = xx[47];
2493 motionData[29] = xx[48];
2494 motionData[30] = xx[49];
2495 motionData[31] = xx[50];
2496 motionData[32] = xx[54];
2497 motionData[33] = xx[55];
2498 motionData[34] = xx[56];
2499 motionData[35] = xx[58];
2500 motionData[36] = xx[59];
2501 motionData[37] = xx[61];
2502 motionData[38] = xx[57];
2503 motionData[39] = xx[73];
2504 motionData[40] = xx[74];
2505 motionData[41] = xx[70];
2506 motionData[42] = xx[72];
2507 motionData[43] = xx[0];
2508 motionData[44] = xx[0];
2509 motionData[45] = xx[75];
2510 motionData[46] = xx[78];
2511 motionData[47] = xx[76];
2512 motionData[48] = xx[80];
2513 motionData[49] = xx[82];
2514 motionData[50] = xx[0];
2515 motionData[51] = xx[0];
2516 motionData[52] = - xx[83];
2517 motionData[53] = xx[88];
2518 motionData[54] = xx[84];
2519 motionData[55] = xx[86];
2520 motionData[56] = xx[95];
2521 motionData[57] = xx[98];
2522 motionData[58] = xx[99];
2523 motionData[59] = xx[91];
2524 motionData[60] = xx[104];
2525 motionData[61] = xx[105];
2526 motionData[62] = xx[106];
2527 motionData[63] = xx[114];
2528 motionData[64] = xx[110];
2529 motionData[65] = xx[112];
2530 motionData[66] = xx[116];
2531 motionData[67] = xx[123];
2532 motionData[68] = xx[124];
2533 motionData[69] = xx[125];
2534 motionData[70] = xx[107];
2535 motionData[71] = xx[115];
2536 motionData[72] = xx[130];
2537 motionData[73] = xx[128];
2538 motionData[74] = xx[136];
2539 motionData[75] = xx[137];
2540 motionData[76] = xx[138];
2541 motionData[77] = xx[90];
2542 motionData[78] = xx[141];
2543 motionData[79] = xx[145];
2544 motionData[80] = xx[140];
2545 motionData[81] = xx[150];
2546 motionData[82] = xx[151];
2547 motionData[83] = xx[152];
2548 motionData[84] = xx[155];
2549 motionData[85] = xx[161];
2550 motionData[86] = xx[162];
2551 motionData[87] = xx[163];
2552 motionData[88] = xx[158];
2553 motionData[89] = xx[167];
2554 motionData[90] = xx[164];
2555 motionData[91] = xx[0];
2556 motionData[92] = - xx[168];
2557 motionData[93] = xx[169];
2558 motionData[94] = xx[0];
2559 motionData[95] = xx[174];
2560 motionData[96] = xx[175];
2561 motionData[97] = xx[172];
2562 motionData[98] = xx[177];
2563 motionData[99] = xx[179];
2564 motionData[100] = xx[181];
2565 motionData[101] = xx[183];
2566 motionData[102] = xx[188];
2567 motionData[103] = xx[189];
2568 motionData[104] = xx[190];
2569 motionData[105] = xx[191];
2570 motionData[106] = xx[194];
2571 motionData[107] = xx[195];
2572 motionData[108] = xx[159];
2573 motionData[109] = xx[193];
2574 motionData[110] = xx[153];
2575 motionData[111] = xx[160];
2576 motionData[112] = xx[0];
2577 motionData[113] = - xx[192];
2578 motionData[114] = xx[196];
2579 motionData[115] = xx[0];
2580 motionData[116] = xx[201];
2581 motionData[117] = xx[199];
2582 motionData[118] = xx[203];
2583 motionData[119] = xx[205];
2584 motionData[120] = xx[207];
2585 motionData[121] = xx[209];
2586 motionData[122] = xx[211];
2587 motionData[123] = xx[216];
2588 motionData[124] = xx[217];
2589 motionData[125] = xx[218];
2590 motionData[126] = xx[220];
2591 motionData[127] = xx[227];
2592 motionData[128] = xx[228];
2593 motionData[129] = xx[219];
2594 motionData[130] = xx[225];
2595 motionData[131] = xx[221];
2596 motionData[132] = xx[223];
2597 motionData[133] = xx[0];
2598 motionData[134] = - xx[230];
2599 motionData[135] = xx[231];
2600 motionData[136] = xx[0];
2601 motionData[137] = xx[236];
2602 motionData[138] = xx[234];
2603 motionData[139] = xx[238];
2604 motionData[140] = xx[240];
2605 motionData[141] = xx[242];
2606 motionData[142] = xx[244];
2607 motionData[143] = xx[246];
2608 motionData[144] = xx[251];
2609 motionData[145] = xx[252];
2610 motionData[146] = xx[253];
2611 motionData[147] = xx[255];
2612 motionData[148] = xx[261];
2613 motionData[149] = xx[262];
2614 motionData[150] = xx[254];
2615 motionData[151] = xx[256];
2616 motionData[152] = xx[263];
2617 motionData[153] = xx[258];
2618 motionData[154] = xx[0];
2619 motionData[155] = - xx[265];
2620 motionData[156] = xx[266];
2621 motionData[157] = xx[0];
2622 motionData[158] = xx[270];
2623 motionData[159] = xx[271];
2624 motionData[160] = xx[268];
2625 motionData[161] = xx[273];
2626 motionData[162] = xx[275];
2627 motionData[163] = xx[277];
2628 motionData[164] = xx[279];
2629 motionData[165] = xx[284];
2630 motionData[166] = xx[285];
2631 motionData[167] = xx[286];
2632 motionData[168] = xx[288];
2633 motionData[169] = xx[295];
2634 motionData[170] = xx[296];
2635 motionData[171] = xx[292];
2636 motionData[172] = xx[289];
2637 motionData[173] = xx[297];
2638 motionData[174] = xx[287];
2639 motionData[175] = xx[0];
2640 motionData[176] = - xx[4];
2641 motionData[177] = xx[298];
2642 motionData[178] = xx[0];
2643 motionData[179] = xx[303];
2644 motionData[180] = xx[304];
2645 motionData[181] = xx[305];
2646 motionData[182] = xx[307];
2647 motionData[183] = xx[309];
2648 motionData[184] = xx[311];
2649 motionData[185] = xx[313];
2650 motionData[186] = xx[318];
2651 motionData[187] = xx[319];
2652 motionData[188] = xx[320];
2653 motionData[189] = xx[321];
2654 motionData[190] = xx[322];
2655 motionData[191] = xx[323];
2656 motionData[192] = xx[224];
2657 motionData[193] = xx[226];
2658 motionData[194] = xx[334];
2659 motionData[195] = xx[331];
2660 motionData[196] = xx[339];
2661 motionData[197] = xx[340];
2662 motionData[198] = xx[341];
2663 motionData[199] = xx[342];
2664 motionData[200] = xx[343] + xx[226];
2665 motionData[201] = xx[344] + xx[334];
2666 motionData[202] = xx[345] + xx[331];
2667 motionData[203] = xx[222];
2668 motionData[204] = xx[332];
2669 motionData[205] = xx[333];
2670 motionData[206] = xx[29];
2671 motionData[207] = xx[31];
2672 motionData[208] = xx[352];
2673 motionData[209] = xx[349];
2674 motionData[210] = xx[357];
2675 motionData[211] = xx[358];
2676 motionData[212] = xx[359];
2677 motionData[213] = xx[360];
2678 motionData[214] = xx[30];
2679 motionData[215] = xx[350];
2680 motionData[216] = xx[351];
2681 motionData[217] = xx[353];
2682 motionData[218] = xx[354];
2683 motionData[219] = xx[355];
2684 motionData[220] = xx[356];
2685 motionData[221] = xx[367];
2686 motionData[222] = xx[368];
2687 motionData[223] = xx[364];
2688 motionData[224] = xx[365];
2689 motionData[225] = xx[366];
2690 motionData[226] = xx[369];
2691 motionData[227] = xx[370];
2692 motionData[228] = xx[377];
2693 motionData[229] = xx[378];
2694 motionData[230] = xx[374];
2695 motionData[231] = xx[82] * xx[365] + xx[370] * xx[83];
2696 motionData[232] = xx[366] * xx[82] - xx[83] * xx[369];
2697 motionData[233] = xx[82] * xx[369] + xx[366] * xx[83];
2698 motionData[234] = xx[370] * xx[82] - xx[83] * xx[365];
2699 motionData[235] = xx[386] + xx[377];
2700 motionData[236] = xx[387] + xx[378];
2701 motionData[237] = xx[388] + xx[374];
2702 motionData[238] = xx[243] * xx[231] - xx[230] * xx[241];
2703 motionData[239] = - (xx[231] * xx[245] + xx[230] * xx[240]);
2704 motionData[240] = xx[231] * xx[240] - xx[230] * xx[245];
2705 motionData[241] = xx[243] * xx[230] + xx[231] * xx[241];
2706 motionData[242] = xx[251] - (xx[34] * xx[375] * xx[231] + xx[235]) + xx[229];
2707 motionData[243] = xx[252] - xx[34] * xx[375] * xx[230] - xx[237];
2708 motionData[244] = xx[253] - ((xx[230] * xx[230] * xx[253] + xx[253] * xx[231] *
2709 xx[231]) * xx[34] + xx[239]) + xx[26];
2710 motionData[245] = xx[376];
2711 motionData[246] = xx[0];
2712 motionData[247] = xx[0];
2713 motionData[248] = xx[389];
2714 motionData[249] = xx[392];
2715 motionData[250] = xx[87];
2716 motionData[251] = xx[89];
2717 motionData[252] = xx[390];
2718 motionData[253] = xx[391];
2719 motionData[254] = xx[393];
2720 motionData[255] = xx[60];
2721 motionData[256] = xx[62];
2722 motionData[257] = xx[394];
2723 motionData[258] = xx[395];
2724 motionData[259] = xx[400];
2725 motionData[260] = xx[401];
2726 motionData[261] = xx[402];
2727 motionData[262] = xx[403];
2728 motionData[263] = xx[396];
2729 motionData[264] = xx[397];
2730 motionData[265] = xx[398];
2731 motionData[266] = xx[38] * xx[401] - xx[402] * xx[39];
2732 motionData[267] = xx[403] * xx[39] - xx[38] * xx[400];
2733 motionData[268] = xx[400] * xx[39] + xx[38] * xx[403];
2734 motionData[269] = - (xx[38] * xx[402] + xx[401] * xx[39]);
2735 motionData[270] = xx[396] - xx[34] * xx[399] * xx[39] + xx[42];
2736 motionData[271] = xx[397] - xx[34] * xx[399] * xx[38] - xx[43];
2737 motionData[272] = xx[398] - (xx[38] * xx[398] * xx[38] + xx[398] * xx[39] *
2738 xx[39]) * xx[34] + xx[45];
2739 motionData[273] = xx[404];
2740 motionData[274] = xx[405];
2741 motionData[275] = xx[406];
2742 motionData[276] = xx[407];
2743 motionData[277] = xx[418];
2744 motionData[278] = xx[419];
2745 motionData[279] = xx[415];
2746 motionData[280] = xx[420];
2747 motionData[281] = xx[421];
2748 motionData[282] = xx[422];
2749 motionData[283] = xx[423];
2750 motionData[284] = xx[424] + xx[418];
2751 motionData[285] = xx[425] + xx[419];
2752 motionData[286] = xx[426] + xx[415];
2753 motionData[287] = xx[427];
2754 motionData[288] = xx[428];
2755 motionData[289] = xx[429];
2756 motionData[290] = xx[430];
2757 motionData[291] = xx[431] + xx[377];
2758 motionData[292] = xx[432] + xx[378];
2759 motionData[293] = xx[433] + xx[374];
2760 motionData[294] = xx[208] * xx[196] - xx[192] * xx[206];
2761 motionData[295] = - (xx[196] * xx[210] + xx[192] * xx[205]);
2762 motionData[296] = xx[196] * xx[205] - xx[192] * xx[210];
2763 motionData[297] = xx[208] * xx[192] + xx[196] * xx[206];
2764 motionData[298] = xx[216] - (xx[34] * xx[416] * xx[196] - xx[200]) + xx[156];
2765 motionData[299] = xx[217] - xx[34] * xx[416] * xx[192] - xx[202];
2766 motionData[300] = xx[218] - ((xx[192] * xx[192] * xx[218] + xx[218] * xx[196] *
2767 xx[196]) * xx[34] + xx[204]) + xx[26];
2768 motionData[301] = xx[417];
2769 motionData[302] = xx[434];
2770 motionData[303] = xx[435];
2771 motionData[304] = xx[92];
2772 motionData[305] = xx[437];
2773 motionData[306] = xx[438];
2774 motionData[307] = xx[94];
2775 motionData[308] = xx[443];
2776 motionData[309] = xx[444];
2777 motionData[310] = xx[445];
2778 motionData[311] = xx[446];
2779 motionData[312] = xx[108];
2780 motionData[313] = xx[436];
2781 motionData[314] = xx[439];
2782 motionData[315] = xx[447];
2783 motionData[316] = xx[448];
2784 motionData[317] = xx[449];
2785 motionData[318] = xx[450];
2786 motionData[319] = xx[440];
2787 motionData[320] = xx[441];
2788 motionData[321] = xx[442];
2789 motionData[322] = xx[38] * xx[448] - xx[449] * xx[39];
2790 motionData[323] = xx[450] * xx[39] - xx[38] * xx[447];
2791 motionData[324] = xx[447] * xx[39] + xx[38] * xx[450];
2792 motionData[325] = - (xx[38] * xx[449] + xx[448] * xx[39]);
2793 motionData[326] = xx[440] - xx[34] * xx[451] * xx[39] + xx[42];
2794 motionData[327] = xx[441] - xx[34] * xx[451] * xx[38] - xx[43];
2795 motionData[328] = xx[442] - (xx[38] * xx[442] * xx[38] + xx[442] * xx[39] *
2796 xx[39]) * xx[34] + xx[45];
2797 motionData[329] = xx[452];
2798 motionData[330] = xx[453];
2799 motionData[331] = xx[454];
2800 motionData[332] = xx[259];
2801 motionData[333] = xx[465];
2802 motionData[334] = xx[260];
2803 motionData[335] = xx[462];
2804 motionData[336] = xx[470];
2805 motionData[337] = xx[471];
2806 motionData[338] = xx[472];
2807 motionData[339] = xx[473];
2808 motionData[340] = xx[474] + xx[465];
2809 motionData[341] = xx[475] + xx[260];
2810 motionData[342] = xx[476] + xx[462];
2811 motionData[343] = xx[466];
2812 motionData[344] = xx[467];
2813 motionData[345] = xx[468];
2814 motionData[346] = xx[469];
2815 motionData[347] = xx[477] + xx[377];
2816 motionData[348] = xx[478] + xx[378];
2817 motionData[349] = xx[479] + xx[374];
2818 motionData[350] = xx[276] * xx[266] - xx[265] * xx[274];
2819 motionData[351] = - (xx[266] * xx[278] + xx[265] * xx[273]);
2820 motionData[352] = xx[266] * xx[273] - xx[265] * xx[278];
2821 motionData[353] = xx[276] * xx[265] + xx[266] * xx[274];
2822 motionData[354] = xx[284] - (xx[34] * xx[257] * xx[266] + xx[269]) + xx[229];
2823 motionData[355] = xx[285] - xx[34] * xx[257] * xx[265] + xx[271];
2824 motionData[356] = xx[286] - ((xx[265] * xx[265] * xx[286] + xx[286] * xx[266] *
2825 xx[266]) * xx[34] + xx[272]) + xx[26];
2826 motionData[357] = xx[463];
2827 motionData[358] = xx[464];
2828 motionData[359] = xx[480];
2829 motionData[360] = xx[117];
2830 motionData[361] = xx[482];
2831 motionData[362] = xx[122];
2832 motionData[363] = xx[113];
2833 motionData[364] = xx[487];
2834 motionData[365] = xx[488];
2835 motionData[366] = xx[489];
2836 motionData[367] = xx[490];
2837 motionData[368] = xx[126];
2838 motionData[369] = xx[481];
2839 motionData[370] = xx[483];
2840 motionData[371] = xx[491];
2841 motionData[372] = xx[492];
2842 motionData[373] = xx[493];
2843 motionData[374] = xx[494];
2844 motionData[375] = xx[484];
2845 motionData[376] = xx[485];
2846 motionData[377] = xx[486];
2847 motionData[378] = xx[38] * xx[492] - xx[493] * xx[39];
2848 motionData[379] = xx[494] * xx[39] - xx[38] * xx[491];
2849 motionData[380] = xx[491] * xx[39] + xx[38] * xx[494];
2850 motionData[381] = - (xx[38] * xx[493] + xx[492] * xx[39]);
2851 motionData[382] = xx[484] - xx[34] * xx[495] * xx[39] + xx[42];
2852 motionData[383] = xx[485] - xx[34] * xx[495] * xx[38] - xx[43];
2853 motionData[384] = xx[486] - (xx[38] * xx[486] * xx[38] + xx[486] * xx[39] *
2854 xx[39]) * xx[34] + xx[45];
2855 motionData[385] = xx[496];
2856 motionData[386] = xx[497];
2857 motionData[387] = xx[498];
2858 motionData[388] = xx[499];
2859 motionData[389] = xx[294];
2860 motionData[390] = xx[293];
2861 motionData[391] = xx[504];
2862 motionData[392] = xx[505];
2863 motionData[393] = xx[506];
2864 motionData[394] = xx[507];
2865 motionData[395] = xx[508];
2866 motionData[396] = xx[509] + xx[294];
2867 motionData[397] = xx[510] + xx[293];
2868 motionData[398] = xx[511] + xx[504];
2869 motionData[399] = xx[512];
2870 motionData[400] = xx[513];
2871 motionData[401] = xx[514];
2872 motionData[402] = xx[515];
2873 motionData[403] = xx[516] + xx[377];
2874 motionData[404] = xx[517] + xx[378];
2875 motionData[405] = xx[518] + xx[374];
2876 motionData[406] = xx[310] * xx[298] - xx[4] * xx[308];
2877 motionData[407] = - (xx[298] * xx[312] + xx[4] * xx[307]);
2878 motionData[408] = xx[298] * xx[307] - xx[4] * xx[312];
2879 motionData[409] = xx[310] * xx[4] + xx[298] * xx[308];
2880 motionData[410] = xx[318] - (xx[34] * xx[290] * xx[298] + xx[302]) + xx[291];
2881 motionData[411] = xx[319] - xx[34] * xx[290] * xx[4] + xx[304];
2882 motionData[412] = xx[320] - ((xx[4] * xx[4] * xx[320] + xx[320] * xx[298] *
2883 xx[298]) * xx[34] + xx[306]) + xx[301];
2884 motionData[413] = xx[519];
2885 motionData[414] = xx[520];
2886 motionData[415] = xx[521];
2887 motionData[416] = xx[522];
2888 motionData[417] = xx[525];
2889 motionData[418] = xx[135];
2890 motionData[419] = xx[139];
2891 motionData[420] = xx[526];
2892 motionData[421] = xx[527];
2893 motionData[422] = xx[528];
2894 motionData[423] = xx[529];
2895 motionData[424] = xx[523];
2896 motionData[425] = xx[524];
2897 motionData[426] = xx[530];
2898 motionData[427] = xx[531];
2899 motionData[428] = xx[532];
2900 motionData[429] = xx[533];
2901 motionData[430] = xx[534];
2902 motionData[431] = xx[535];
2903 motionData[432] = xx[536];
2904 motionData[433] = xx[537];
2905 motionData[434] = xx[38] * xx[532] - xx[533] * xx[39];
2906 motionData[435] = xx[534] * xx[39] - xx[38] * xx[531];
2907 motionData[436] = xx[531] * xx[39] + xx[38] * xx[534];
2908 motionData[437] = - (xx[38] * xx[533] + xx[532] * xx[39]);
2909 motionData[438] = xx[535] - xx[34] * xx[538] * xx[39] + xx[42];
2910 motionData[439] = xx[536] - xx[34] * xx[538] * xx[38] - xx[43];
2911 motionData[440] = xx[537] - (xx[38] * xx[537] * xx[38] + xx[537] * xx[39] *
2912 xx[39]) * xx[34] + xx[45];
2913 motionData[441] = xx[539];
2914 motionData[442] = xx[540];
2915 motionData[443] = xx[541];
2916 motionData[444] = xx[542];
2917 motionData[445] = xx[553];
2918 motionData[446] = xx[166];
2919 motionData[447] = xx[550];
2920 motionData[448] = xx[554];
2921 motionData[449] = xx[555];
2922 motionData[450] = xx[556];
2923 motionData[451] = xx[557];
2924 motionData[452] = xx[558] + xx[553];
2925 motionData[453] = xx[559] + xx[166];
2926 motionData[454] = xx[560] + xx[550];
2927 motionData[455] = xx[561];
2928 motionData[456] = xx[562];
2929 motionData[457] = xx[563];
2930 motionData[458] = xx[564];
2931 motionData[459] = xx[565] + xx[377];
2932 motionData[460] = xx[566] + xx[378];
2933 motionData[461] = xx[567] + xx[374];
2934 motionData[462] = xx[180] * xx[169] - xx[168] * xx[178];
2935 motionData[463] = - (xx[169] * xx[182] + xx[168] * xx[177]);
2936 motionData[464] = xx[169] * xx[177] - xx[168] * xx[182];
2937 motionData[465] = xx[180] * xx[168] + xx[169] * xx[178];
2938 motionData[466] = xx[188] - (xx[34] * xx[379] * xx[169] + xx[173]) + xx[165];
2939 motionData[467] = xx[189] - xx[34] * xx[379] * xx[168] + xx[175];
2940 motionData[468] = xx[190] - ((xx[168] * xx[168] * xx[190] + xx[190] * xx[169] *
2941 xx[169]) * xx[34] + xx[176]) + xx[26];
2942 motionData[469] = xx[380];
2943 motionData[470] = xx[381];
2944 motionData[471] = xx[382];
2945 motionData[472] = xx[96];
2946 motionData[473] = xx[552];
2947 motionData[474] = xx[77];
2948 motionData[475] = xx[79];
2949 motionData[476] = xx[572];
2950 motionData[477] = xx[573];
2951 motionData[478] = xx[574];
2952 motionData[479] = xx[575];
2953 motionData[480] = xx[143];
2954 motionData[481] = xx[154];
2955 motionData[482] = xx[551];
2956 motionData[483] = xx[568];
2957 motionData[484] = xx[569];
2958 motionData[485] = xx[570];
2959 motionData[486] = xx[571];
2960 motionData[487] = xx[576];
2961 motionData[488] = xx[577];
2962 motionData[489] = xx[578];
2963 motionData[490] = xx[38] * xx[569] - xx[570] * xx[39];
2964 motionData[491] = xx[571] * xx[39] - xx[38] * xx[568];
2965 motionData[492] = xx[568] * xx[39] + xx[38] * xx[571];
2966 motionData[493] = - (xx[38] * xx[570] + xx[569] * xx[39]);
2967 motionData[494] = xx[576] - xx[34] * xx[579] * xx[39] + xx[42];
2968 motionData[495] = xx[577] - xx[34] * xx[579] * xx[38] - xx[43];
2969 motionData[496] = xx[578] - (xx[38] * xx[578] * xx[38] + xx[578] * xx[39] *
2970 xx[39]) * xx[34] + xx[45];
2971 motionData[497] = xx[582];
2972 motionData[498] = xx[583];
2973 motionData[499] = xx[584];
2974 motionData[500] = xx[585];
2975 motionData[501] = xx[581];
2976 motionData[502] = xx[1];
2977 motionData[503] = xx[586];
2978 motionData[504] = xx[587];
2979 motionData[505] = xx[588];
2980 motionData[506] = xx[589];
2981 motionData[507] = xx[590];
2982 motionData[508] = xx[580];
2983 motionData[509] = xx[597];
2984 motionData[510] = xx[594];
2985 motionData[511] = xx[595];
2986 motionData[512] = xx[596];
2987 motionData[513] = xx[598];
2988 motionData[514] = xx[599];
2989 motionData[515] = xx[603];
2990 motionData[516] = xx[604];
2991 motionData[517] = xx[600];
2992 motionData[518] = xx[609];
2993 motionData[519] = xx[610];
2994 motionData[520] = xx[611];
2995 motionData[521] = xx[612];
2996 motionData[522] = xx[601];
2997 motionData[523] = xx[602];
2998 motionData[524] = xx[605];
2999 motionData[525] = xx[613];
3000 motionData[526] = xx[614];
3001 motionData[527] = xx[615];
3002 motionData[528] = xx[616];
3003 motionData[529] = xx[617];
3004 motionData[530] = xx[618];
3005 motionData[531] = xx[606];
3006 motionData[532] = xx[72] * xx[613] - xx[616] * xx[75];
3007 motionData[533] = xx[72] * xx[614] + xx[615] * xx[75];
3008 motionData[534] = xx[72] * xx[615] - xx[614] * xx[75];
3009 motionData[535] = xx[613] * xx[75] + xx[72] * xx[616];
3010 motionData[536] = xx[619] + xx[617];
3011 motionData[537] = xx[620] + xx[618];
3012 motionData[538] = xx[621] + xx[606];
3013 motionData[539] = xx[0];
3014 motionData[540] = xx[0];
3015 motionData[541] = xx[0];
3016 motionData[542] = state[3];
3017 motionData[543] = state[4];
3018 motionData[544] = state[5];
3019 motionData[545] = xx[5];
3020 motionData[546] = xx[6];
3021 motionData[547] = xx[7];
3022 motionData[548] = xx[8];
3023 motionData[549] = xx[16];
3024 motionData[550] = xx[10];
3025 motionData[551] = xx[11];
3026 motionData[552] = xx[12];
3027 motionData[553] = xx[14];
3028 motionData[554] = xx[622];
3029 motionData[555] = xx[13];
3030 motionData[556] = xx[624];
3031 motionData[557] = xx[17];
3032 motionData[558] = xx[18];
3033 motionData[559] = xx[15];
3034 motionData[560] = xx[338];
3035 motionData[561] = xx[37];
3036 motionData[562] = xx[335];
3037 motionData[563] = xx[607];
3038 motionData[564] = xx[40];
3039 motionData[565] = xx[336];
3040 motionData[566] = xx[337];
3041 motionData[567] = xx[346];
3042 motionData[568] = xx[347];
3043 motionData[569] = xx[348];
3044 motionData[570] = xx[608];
3045 motionData[571] = xx[623];
3046 motionData[572] = xx[63];
3047 motionData[573] = xx[64];
3048 motionData[574] = xx[65];
3049 motionData[575] = xx[68];
3050 motionData[576] = xx[69];
3051 motionData[577] = xx[66];
3052 motionData[578] = xx[371];
3053 motionData[579] = xx[67];
3054 motionData[580] = xx[71];
3055 motionData[581] = xx[68] - (xx[82] * xx[361] + xx[362] * xx[83]) * xx[34];
3056 motionData[582] = xx[69] + xx[34] * (xx[82] * xx[362] - xx[361] * xx[83]);
3057 motionData[583] = xx[66] - state[33];
3058 motionData[584] = xx[363] - (xx[82] * xx[373] + xx[383] * xx[83]) * xx[34] -
3059 xx[81] * state[33];
3060 motionData[585] = xx[372] + xx[34] * (xx[82] * xx[383] - xx[373] * xx[83]) -
3061 xx[85] * state[33];
3062 motionData[586] = xx[627] + xx[71];
3063 motionData[587] = xx[628];
3064 motionData[588] = xx[629];
3065 motionData[589] = xx[630] + state[35];
3066 motionData[590] = xx[631] - xx[97] * state[35];
3067 motionData[591] = xx[632] + xx[93] * state[35];
3068 motionData[592] = xx[633];
3069 motionData[593] = xx[100];
3070 motionData[594] = xx[101];
3071 motionData[595] = xx[102] - state[37];
3072 motionData[596] = xx[634] + xx[111] * state[37];
3073 motionData[597] = xx[635] + xx[109] * state[37];
3074 motionData[598] = xx[636];
3075 motionData[599] = xx[118];
3076 motionData[600] = xx[119];
3077 motionData[601] = xx[120] - state[39];
3078 motionData[602] = xx[637] + xx[129] * state[39];
3079 motionData[603] = xx[638] - xx[127] * state[39];
3080 motionData[604] = xx[639];
3081 motionData[605] = xx[131];
3082 motionData[606] = xx[132];
3083 motionData[607] = xx[133] + state[41];
3084 motionData[608] = xx[640] + xx[144] * state[41];
3085 motionData[609] = xx[641] + xx[142] * state[41];
3086 motionData[610] = xx[642];
3087 motionData[611] = xx[146];
3088 motionData[612] = xx[147];
3089 motionData[613] = xx[103];
3090 motionData[614] = xx[643];
3091 motionData[615] = xx[121];
3092 motionData[616] = xx[645];
3093 motionData[617] = xx[148];
3094 motionData[618] = xx[149];
3095 motionData[619] = xx[134];
3096 motionData[620] = xx[544];
3097 motionData[621] = xx[171];
3098 motionData[622] = xx[384];
3099 motionData[623] = xx[591] + xx[543];
3100 motionData[624] = xx[592] + xx[548];
3101 motionData[625] = xx[593] + state[52];
3102 motionData[626] = xx[646] + xx[545];
3103 motionData[627] = xx[647] + xx[546];
3104 motionData[628] = xx[648] + xx[547];
3105 motionData[629] = xx[184];
3106 motionData[630] = xx[185];
3107 motionData[631] = xx[170];
3108 motionData[632] = xx[652];
3109 motionData[633] = xx[186];
3110 motionData[634] = xx[654];
3111 motionData[635] = xx[187];
3112 motionData[636] = xx[385];
3113 motionData[637] = xx[157];
3114 motionData[638] = xx[411];
3115 motionData[639] = xx[198];
3116 motionData[640] = xx[408];
3117 motionData[641] = xx[649] + xx[410];
3118 motionData[642] = xx[650] + xx[549];
3119 motionData[643] = xx[651] + state[63];
3120 motionData[644] = xx[655] + xx[412];
3121 motionData[645] = xx[656] + xx[413];
3122 motionData[646] = xx[657] + xx[414];
3123 motionData[647] = xx[212];
3124 motionData[648] = xx[213];
3125 motionData[649] = xx[197];
3126 motionData[650] = xx[661];
3127 motionData[651] = xx[214];
3128 motionData[652] = xx[663];
3129 motionData[653] = xx[324];
3130 motionData[654] = xx[325];
3131 motionData[655] = xx[215];
3132 motionData[656] = xx[329];
3133 motionData[657] = xx[233];
3134 motionData[658] = xx[326];
3135 motionData[659] = xx[664] + xx[328];
3136 motionData[660] = xx[665] + xx[330];
3137 motionData[661] = xx[666] + state[74];
3138 motionData[662] = xx[667] + xx[658];
3139 motionData[663] = xx[668] + xx[659];
3140 motionData[664] = xx[669] + xx[660];
3141 motionData[665] = xx[247];
3142 motionData[666] = xx[248];
3143 motionData[667] = xx[232];
3144 motionData[668] = xx[673];
3145 motionData[669] = xx[249];
3146 motionData[670] = xx[675];
3147 motionData[671] = xx[327];
3148 motionData[672] = xx[409];
3149 motionData[673] = xx[250];
3150 motionData[674] = xx[458];
3151 motionData[675] = xx[267];
3152 motionData[676] = xx[455];
3153 motionData[677] = xx[670] + xx[457];
3154 motionData[678] = xx[671] + xx[625];
3155 motionData[679] = xx[672] + state[85];
3156 motionData[680] = xx[676] + xx[459];
3157 motionData[681] = xx[677] + xx[460];
3158 motionData[682] = xx[678] + xx[461];
3159 motionData[683] = xx[280];
3160 motionData[684] = xx[281];
3161 motionData[685] = xx[264];
3162 motionData[686] = xx[682];
3163 motionData[687] = xx[282];
3164 motionData[688] = xx[684];
3165 motionData[689] = xx[283];
3166 motionData[690] = xx[456];
3167 motionData[691] = xx[28];
3168 motionData[692] = xx[503];
3169 motionData[693] = xx[300];
3170 motionData[694] = xx[500];
3171 motionData[695] = xx[685] + xx[502];
3172 motionData[696] = xx[686] + xx[626];
3173 motionData[697] = xx[687] + state[96];
3174 motionData[698] = xx[688] + xx[679];
3175 motionData[699] = xx[689] + xx[680];
3176 motionData[700] = xx[690] + xx[681];
3177}
3178
3179static size_t computeAssemblyError_0(const double *rtdv, const double *state,
3180 const double *motionData, double *error)
3181{
3182 double xx[13];
3183 (void) rtdv;
3184 (void) state;
3185 xx[0] = motionData[231];
3186 xx[1] = motionData[232];
3187 xx[2] = motionData[233];
3188 xx[3] = motionData[234];
3189 xx[4] = - 7.599121945184391e-12;
3190 xx[5] = 5.036130209737022e-12;
3191 xx[6] = - 5.192027881355888e-12;
3192 pm_math_quatXform(xx + 0, xx + 4, xx + 7);
3193 xx[0] = motionData[196];
3194 xx[1] = motionData[197];
3195 xx[2] = motionData[198];
3196 xx[3] = motionData[199];
3197 xx[4] = 3.641924106626229e-8;
3198 xx[5] = 0.04574999999998041;
3199 xx[6] = 2.92603149291605e-7;
3200 pm_math_quatXform(xx + 0, xx + 4, xx + 10);
3201 error[0] = xx[7] + motionData[235] - (xx[10] + motionData[200]);
3202 error[1] = xx[8] + motionData[236] - (xx[11] + motionData[201]);
3203 error[2] = xx[9] + motionData[237] - (xx[12] + motionData[202]);
3204 return 3;
3205}
3206
3207static size_t computeAssemblyError_1(const double *rtdv, const double *state,
3208 const double *motionData, double *error)
3209{
3210 double xx[13];
3211 (void) rtdv;
3212 (void) state;
3213 xx[0] = motionData[287];
3214 xx[1] = motionData[288];
3215 xx[2] = motionData[289];
3216 xx[3] = motionData[290];
3217 xx[4] = - 7.599121945184391e-12;
3218 xx[5] = 5.036130209737022e-12;
3219 xx[6] = - 5.192027881355888e-12;
3220 pm_math_quatXform(xx + 0, xx + 4, xx + 7);
3221 xx[0] = motionData[280];
3222 xx[1] = motionData[281];
3223 xx[2] = motionData[282];
3224 xx[3] = motionData[283];
3225 xx[4] = 3.641924106626229e-8;
3226 xx[5] = 0.04574999999998041;
3227 xx[6] = 2.92603149291605e-7;
3228 pm_math_quatXform(xx + 0, xx + 4, xx + 10);
3229 error[0] = xx[7] + motionData[291] - (xx[10] + motionData[284]);
3230 error[1] = xx[8] + motionData[292] - (xx[11] + motionData[285]);
3231 error[2] = xx[9] + motionData[293] - (xx[12] + motionData[286]);
3232 return 3;
3233}
3234
3235static size_t computeAssemblyError_2(const double *rtdv, const double *state,
3236 const double *motionData, double *error)
3237{
3238 double xx[13];
3239 (void) rtdv;
3240 (void) state;
3241 xx[0] = motionData[343];
3242 xx[1] = motionData[344];
3243 xx[2] = motionData[345];
3244 xx[3] = motionData[346];
3245 xx[4] = - 7.599121945184391e-12;
3246 xx[5] = 5.036130209737022e-12;
3247 xx[6] = - 5.192027881355888e-12;
3248 pm_math_quatXform(xx + 0, xx + 4, xx + 7);
3249 xx[0] = motionData[336];
3250 xx[1] = motionData[337];
3251 xx[2] = motionData[338];
3252 xx[3] = motionData[339];
3253 xx[4] = 3.641924106626229e-8;
3254 xx[5] = 0.04574999999998041;
3255 xx[6] = 2.92603149291605e-7;
3256 pm_math_quatXform(xx + 0, xx + 4, xx + 10);
3257 error[0] = xx[7] + motionData[347] - (xx[10] + motionData[340]);
3258 error[1] = xx[8] + motionData[348] - (xx[11] + motionData[341]);
3259 error[2] = xx[9] + motionData[349] - (xx[12] + motionData[342]);
3260 return 3;
3261}
3262
3263static size_t computeAssemblyError_3(const double *rtdv, const double *state,
3264 const double *motionData, double *error)
3265{
3266 double xx[13];
3267 (void) rtdv;
3268 (void) state;
3269 xx[0] = motionData[399];
3270 xx[1] = motionData[400];
3271 xx[2] = motionData[401];
3272 xx[3] = motionData[402];
3273 xx[4] = - 7.599121945184391e-12;
3274 xx[5] = 5.036130209737022e-12;
3275 xx[6] = - 5.192027881355888e-12;
3276 pm_math_quatXform(xx + 0, xx + 4, xx + 7);
3277 xx[0] = motionData[392];
3278 xx[1] = motionData[393];
3279 xx[2] = motionData[394];
3280 xx[3] = motionData[395];
3281 xx[4] = 3.641924106626229e-8;
3282 xx[5] = 0.04574999999998041;
3283 xx[6] = 2.92603149291605e-7;
3284 pm_math_quatXform(xx + 0, xx + 4, xx + 10);
3285 error[0] = xx[7] + motionData[403] - (xx[10] + motionData[396]);
3286 error[1] = xx[8] + motionData[404] - (xx[11] + motionData[397]);
3287 error[2] = xx[9] + motionData[405] - (xx[12] + motionData[398]);
3288 return 3;
3289}
3290
3291static size_t computeAssemblyError_4(const double *rtdv, const double *state,
3292 const double *motionData, double *error)
3293{
3294 double xx[13];
3295 (void) rtdv;
3296 (void) state;
3297 xx[0] = motionData[455];
3298 xx[1] = motionData[456];
3299 xx[2] = motionData[457];
3300 xx[3] = motionData[458];
3301 xx[4] = - 7.599121945184391e-12;
3302 xx[5] = 5.036130209737022e-12;
3303 xx[6] = - 5.192027881355888e-12;
3304 pm_math_quatXform(xx + 0, xx + 4, xx + 7);
3305 xx[0] = motionData[448];
3306 xx[1] = motionData[449];
3307 xx[2] = motionData[450];
3308 xx[3] = motionData[451];
3309 xx[4] = 3.641924106626229e-8;
3310 xx[5] = 0.04574999999998041;
3311 xx[6] = 2.92603149291605e-7;
3312 pm_math_quatXform(xx + 0, xx + 4, xx + 10);
3313 error[0] = xx[7] + motionData[459] - (xx[10] + motionData[452]);
3314 error[1] = xx[8] + motionData[460] - (xx[11] + motionData[453]);
3315 error[2] = xx[9] + motionData[461] - (xx[12] + motionData[454]);
3316 return 3;
3317}
3318
3319size_t PlatformAssem_f0ca4364_1_computeAssemblyError(const void *mech, const
3320 double *rtdv, size_t constraintIdx, const double *state, const double
3321 *motionData, double *error)
3322{
3323 (void) mech;
3324 (void)rtdv;
3325 (void) state;
3326 (void) motionData;
3327 (void) error;
3328 (void) state;
3329 switch (constraintIdx)
3330 {
3331 case 0:
3332 return computeAssemblyError_0(rtdv, state, motionData, error);
3333
3334 case 1:
3335 return computeAssemblyError_1(rtdv, state, motionData, error);
3336
3337 case 2:
3338 return computeAssemblyError_2(rtdv, state, motionData, error);
3339
3340 case 3:
3341 return computeAssemblyError_3(rtdv, state, motionData, error);
3342
3343 case 4:
3344 return computeAssemblyError_4(rtdv, state, motionData, error);
3345 }
3346
3347 return 0;
3348}
3349
3350static size_t computeAssemblyJacobian_0(const double *rtdv, const double *state,
3351 const double *motionData, double *J)
3352{
3353 double xx[165];
3354 (void) rtdv;
3355 xx[0] = 0.0;
3356 xx[1] = 0.3895853754265615;
3357 xx[2] = 0.5;
3358 xx[3] = xx[2] * state[12];
3359 xx[4] = cos(xx[3]);
3360 xx[5] = 0.389581900177037;
3361 xx[6] = sin(xx[3]);
3362 xx[3] = xx[1] * xx[4] - xx[5] * xx[6];
3363 xx[7] = 0.5901074779979933;
3364 xx[8] = 0.5901036711621462;
3365 xx[9] = xx[7] * xx[4] + xx[8] * xx[6];
3366 xx[10] = - xx[9];
3367 xx[11] = xx[8] * xx[4] - xx[7] * xx[6];
3368 xx[7] = xx[5] * xx[4] + xx[1] * xx[6];
3369 xx[1] = - xx[7];
3370 xx[12] = xx[3];
3371 xx[13] = xx[10];
3372 xx[14] = xx[11];
3373 xx[15] = xx[1];
3374 xx[16] = motionData[266];
3375 xx[17] = motionData[267];
3376 xx[18] = motionData[268];
3377 xx[19] = motionData[269];
3378 pm_math_quatCompose(xx + 12, xx + 16, xx + 20);
3379 xx[4] = 2.0;
3380 xx[5] = 1.0;
3381 xx[12] = xx[4] * (motionData[266] * motionData[268] - motionData[267] *
3382 motionData[269]);
3383 xx[13] = - ((motionData[266] * motionData[267] + motionData[268] * motionData
3384 [269]) * xx[4]);
3385 xx[14] = (motionData[267] * motionData[267] + motionData[268] * motionData[268])
3386 * xx[4] - xx[5];
3387 xx[6] = 7.599121945184391e-12;
3388 xx[8] = 5.036130209737022e-12;
3389 xx[15] = 5.192027881355888e-12;
3390 xx[16] = - xx[6];
3391 xx[17] = xx[8];
3392 xx[18] = - xx[15];
3393 pm_math_cross3(xx + 12, xx + 16, xx + 24);
3394 pm_math_quatXform(xx + 20, xx + 24, xx + 12);
3395 xx[19] = xx[10];
3396 xx[20] = xx[11];
3397 xx[21] = xx[1];
3398 xx[1] = xx[7] * motionData[270];
3399 xx[10] = xx[7] * motionData[271];
3400 xx[22] = xx[11] * motionData[271] - xx[9] * motionData[270];
3401 xx[23] = - xx[1];
3402 xx[24] = - xx[10];
3403 xx[25] = - xx[22];
3404 pm_math_cross3(xx + 19, xx + 23, xx + 26);
3405 xx[19] = 0.02520954632904373;
3406 xx[20] = xx[19] * xx[9];
3407 xx[21] = xx[19] * xx[7];
3408 xx[23] = xx[2] * state[14];
3409 xx[24] = cos(xx[23]);
3410 xx[25] = sin(xx[23]);
3411 xx[29] = xx[24] * motionData[15] - xx[25] * motionData[16];
3412 xx[30] = - (xx[24] * motionData[14] + xx[25] * motionData[17]);
3413 xx[31] = xx[25] * motionData[14] - xx[24] * motionData[17];
3414 xx[32] = xx[25] * motionData[15] + xx[24] * motionData[16];
3415 xx[33] = motionData[259];
3416 xx[34] = motionData[260];
3417 xx[35] = motionData[261];
3418 xx[36] = motionData[262];
3419 pm_math_quatCompose(xx + 29, xx + 33, xx + 37);
3420 xx[29] = xx[4] * (motionData[260] * motionData[262] - motionData[259] *
3421 motionData[261]);
3422 xx[30] = (motionData[259] * motionData[260] + motionData[261] * motionData[262])
3423 * xx[4];
3424 xx[31] = xx[5] - (motionData[260] * motionData[260] + motionData[261] *
3425 motionData[261]) * xx[4];
3426 pm_math_cross3(xx + 29, xx + 16, xx + 32);
3427 pm_math_quatXform(xx + 37, xx + 32, xx + 29);
3428 xx[23] = xx[25] * motionData[264] - xx[24] * motionData[263];
3429 xx[32] = 7.748428954013064e-12;
3430 xx[33] = 5.376764528053357e-12;
3431 xx[34] = xx[32] * xx[24] - xx[33] * xx[25];
3432 xx[35] = xx[4] * xx[25] * xx[23] - (motionData[264] + xx[4] * xx[34] * xx[25])
3433 - xx[33];
3434 xx[36] = motionData[15];
3435 xx[37] = motionData[16];
3436 xx[38] = motionData[17];
3437 xx[25] = motionData[263] + xx[4] * xx[24] * xx[23] - xx[4] * xx[34] * xx[24] +
3438 xx[32];
3439 xx[23] = xx[25] * motionData[17];
3440 xx[24] = xx[35] * motionData[17];
3441 xx[32] = xx[25] * motionData[15] - xx[35] * motionData[16];
3442 xx[39] = - xx[23];
3443 xx[40] = xx[24];
3444 xx[41] = xx[32];
3445 pm_math_cross3(xx + 36, xx + 39, xx + 42);
3446 xx[36] = motionData[203];
3447 xx[37] = motionData[204];
3448 xx[38] = motionData[205];
3449 xx[39] = motionData[206];
3450 xx[33] = 3.980251324392935e-7;
3451 xx[34] = 0.999999999999921;
3452 xx[40] = xx[33] * state[19] - xx[34] * state[16];
3453 xx[41] = xx[33] * state[18] + xx[34] * state[17];
3454 xx[45] = - xx[41];
3455 xx[46] = xx[34] * state[18] - xx[33] * state[17];
3456 xx[47] = - xx[46];
3457 xx[48] = xx[33] * state[16] + xx[34] * state[19];
3458 xx[49] = - xx[48];
3459 xx[50] = xx[40];
3460 xx[51] = xx[45];
3461 xx[52] = xx[47];
3462 xx[53] = xx[49];
3463 pm_math_quatCompose(xx + 36, xx + 50, xx + 54);
3464 xx[58] = motionData[252];
3465 xx[59] = motionData[253];
3466 xx[60] = motionData[254];
3467 xx[61] = motionData[255];
3468 pm_math_quatCompose(xx + 54, xx + 58, xx + 62);
3469 xx[54] = motionData[253];
3470 xx[55] = motionData[254];
3471 xx[56] = motionData[255];
3472 xx[57] = 7.960502648785241e-7;
3473 xx[58] = xx[57] * motionData[255];
3474 xx[59] = xx[57] * motionData[253] + motionData[254];
3475 xx[66] = xx[58];
3476 xx[67] = motionData[255];
3477 xx[68] = - xx[59];
3478 pm_math_cross3(xx + 54, xx + 66, xx + 69);
3479 xx[60] = motionData[252] * motionData[255];
3480 xx[66] = xx[5] + (xx[69] - xx[58] * motionData[252]) * xx[4];
3481 xx[67] = xx[4] * (xx[70] - xx[60]) - xx[57];
3482 xx[68] = xx[4] * (xx[71] + xx[59] * motionData[252]);
3483 pm_math_cross3(xx + 66, xx + 16, xx + 69);
3484 pm_math_quatXform(xx + 62, xx + 69, xx + 66);
3485 xx[59] = - (xx[57] * motionData[258]);
3486 xx[69] = xx[59];
3487 xx[70] = - motionData[258];
3488 xx[71] = motionData[257] + xx[57] * motionData[256];
3489 pm_math_quatXform(xx + 50, xx + 69, xx + 72);
3490 xx[61] = 2.329280111075767e-13;
3491 xx[69] = 2.926046524751139e-7;
3492 xx[75] = xx[61];
3493 xx[76] = xx[69];
3494 xx[77] = 0.04575000000718987;
3495 pm_math_quatXform(xx + 50, xx + 75, xx + 78);
3496 xx[81] = xx[72] + xx[78];
3497 xx[82] = xx[73] + xx[79];
3498 xx[83] = xx[74] + xx[80];
3499 pm_math_quatXform(xx + 36, xx + 81, xx + 70);
3500 xx[73] = motionData[253] - xx[57] * motionData[254];
3501 xx[78] = - motionData[255];
3502 xx[79] = xx[58];
3503 xx[80] = xx[73];
3504 pm_math_cross3(xx + 54, xx + 78, xx + 81);
3505 xx[54] = xx[57] + (xx[60] + xx[81]) * xx[4];
3506 xx[55] = xx[5] + xx[4] * (xx[82] - xx[57] * xx[60]);
3507 xx[56] = xx[4] * (xx[83] - xx[73] * motionData[252]);
3508 pm_math_cross3(xx + 54, xx + 16, xx + 78);
3509 pm_math_quatXform(xx + 62, xx + 78, xx + 54);
3510 xx[78] = motionData[258];
3511 xx[79] = xx[59];
3512 xx[80] = xx[57] * motionData[257] - motionData[256];
3513 pm_math_quatXform(xx + 50, xx + 78, xx + 57);
3514 xx[78] = - xx[69];
3515 xx[79] = xx[61];
3516 xx[80] = 7.670997177269469e-12;
3517 pm_math_quatXform(xx + 50, xx + 78, xx + 81);
3518 xx[50] = xx[57] + xx[81];
3519 xx[51] = xx[58] + xx[82];
3520 xx[52] = xx[59] + xx[83];
3521 pm_math_quatXform(xx + 36, xx + 50, xx + 57);
3522 xx[50] = xx[4] * (motionData[253] * motionData[255] - motionData[252] *
3523 motionData[254]);
3524 xx[51] = (motionData[252] * motionData[253] + motionData[254] * motionData[255])
3525 * xx[4];
3526 xx[52] = xx[5] - (motionData[253] * motionData[253] + motionData[254] *
3527 motionData[254]) * xx[4];
3528 pm_math_cross3(xx + 50, xx + 16, xx + 81);
3529 pm_math_quatXform(xx + 62, xx + 81, xx + 50);
3530 xx[60] = xx[45];
3531 xx[61] = xx[47];
3532 xx[62] = xx[49];
3533 xx[45] = xx[48] * motionData[256];
3534 xx[47] = xx[48] * motionData[257];
3535 xx[49] = xx[41] * motionData[256] + xx[46] * motionData[257];
3536 xx[63] = xx[45];
3537 xx[64] = xx[47];
3538 xx[65] = - xx[49];
3539 pm_math_cross3(xx + 60, xx + 63, xx + 81);
3540 xx[53] = 3.641162862673871e-8;
3541 xx[63] = xx[53] * xx[48];
3542 xx[64] = 0.04575000000717538;
3543 xx[65] = xx[64] * xx[48];
3544 xx[48] = xx[53] * xx[41] + xx[46] * xx[64];
3545 xx[84] = xx[63];
3546 xx[85] = xx[65];
3547 xx[86] = - xx[48];
3548 pm_math_cross3(xx + 60, xx + 84, xx + 87);
3549 xx[60] = xx[4] * (xx[81] + xx[45] * xx[40]) + xx[4] * (xx[87] + xx[63] * xx[40])
3550 - motionData[257] - xx[64];
3551 xx[61] = motionData[256] + xx[4] * (xx[82] + xx[47] * xx[40]) + (xx[65] * xx
3552 [40] + xx[88]) * xx[4] + xx[53];
3553 xx[62] = (xx[83] - xx[49] * xx[40]) * xx[4] + (xx[89] - xx[48] * xx[40]) * xx
3554 [4];
3555 pm_math_quatXform(xx + 36, xx + 60, xx + 45);
3556 xx[36] = motionData[210];
3557 xx[37] = motionData[211];
3558 xx[38] = motionData[212];
3559 xx[39] = motionData[213];
3560 xx[40] = 3.980251340548381e-7;
3561 xx[41] = xx[34] * state[26] - xx[40] * state[23];
3562 xx[48] = xx[34] * state[25] - xx[40] * state[24];
3563 xx[49] = xx[40] * state[25] + xx[34] * state[24];
3564 xx[60] = - xx[49];
3565 xx[61] = xx[40] * state[26] + xx[34] * state[23];
3566 xx[40] = - xx[61];
3567 xx[81] = xx[41];
3568 xx[82] = xx[48];
3569 xx[83] = xx[60];
3570 xx[84] = xx[40];
3571 pm_math_quatCompose(xx + 36, xx + 81, xx + 85);
3572 xx[81] = motionData[245];
3573 xx[82] = motionData[246];
3574 xx[83] = motionData[247];
3575 xx[84] = motionData[248];
3576 pm_math_quatCompose(xx + 85, xx + 81, xx + 89);
3577 xx[62] = motionData[247] * motionData[247];
3578 xx[63] = motionData[248] * motionData[248];
3579 xx[65] = motionData[246] * motionData[247];
3580 xx[69] = motionData[245] * motionData[248];
3581 xx[73] = motionData[245] * motionData[247];
3582 xx[74] = motionData[246] * motionData[248];
3583 xx[81] = xx[5] - (xx[62] + xx[63]) * xx[4];
3584 xx[82] = xx[4] * (xx[65] - xx[69]);
3585 xx[83] = (xx[73] + xx[74]) * xx[4];
3586 pm_math_cross3(xx + 81, xx + 16, xx + 84);
3587 pm_math_quatXform(xx + 89, xx + 84, xx + 81);
3588 xx[84] = xx[48];
3589 xx[85] = xx[60];
3590 xx[86] = xx[40];
3591 xx[40] = xx[49] * motionData[250];
3592 xx[60] = xx[61] * motionData[251];
3593 xx[87] = xx[40] + xx[60];
3594 xx[88] = xx[48] * motionData[250];
3595 xx[93] = xx[48] * motionData[251];
3596 xx[94] = - xx[87];
3597 xx[95] = - xx[88];
3598 xx[96] = - xx[93];
3599 pm_math_cross3(xx + 84, xx + 94, xx + 97);
3600 xx[94] = xx[49] * xx[8];
3601 xx[95] = xx[61] * xx[15];
3602 xx[96] = xx[94] - xx[95];
3603 xx[100] = xx[8] * xx[48];
3604 xx[101] = xx[15] * xx[48];
3605 xx[102] = xx[96];
3606 xx[103] = xx[100];
3607 xx[104] = - xx[101];
3608 pm_math_cross3(xx + 84, xx + 102, xx + 105);
3609 xx[102] = xx[4] * (xx[97] - xx[87] * xx[41]) + (xx[41] * xx[96] + xx[105]) *
3610 xx[4];
3611 xx[103] = xx[4] * (xx[98] - xx[88] * xx[41]) + xx[4] * (xx[106] + xx[100] *
3612 xx[41]) - motionData[251] - xx[15];
3613 xx[104] = motionData[250] + xx[4] * (xx[99] - xx[93] * xx[41]) + (xx[107] -
3614 xx[101] * xx[41]) * xx[4] - xx[8];
3615 pm_math_quatXform(xx + 36, xx + 102, xx + 96);
3616 xx[87] = motionData[246] * motionData[246];
3617 xx[88] = motionData[247] * motionData[248];
3618 xx[93] = motionData[245] * motionData[246];
3619 xx[99] = (xx[69] + xx[65]) * xx[4];
3620 xx[100] = xx[5] - (xx[63] + xx[87]) * xx[4];
3621 xx[101] = xx[4] * (xx[88] - xx[93]);
3622 pm_math_cross3(xx + 99, xx + 16, xx + 102);
3623 pm_math_quatXform(xx + 89, xx + 102, xx + 99);
3624 xx[63] = xx[49] * motionData[249];
3625 xx[65] = xx[48] * motionData[249];
3626 xx[69] = xx[65] - xx[60];
3627 xx[60] = xx[49] * motionData[251];
3628 xx[102] = xx[63];
3629 xx[103] = xx[69];
3630 xx[104] = xx[60];
3631 pm_math_cross3(xx + 84, xx + 102, xx + 105);
3632 xx[102] = xx[49] * xx[6];
3633 xx[103] = xx[6] * xx[48];
3634 xx[48] = xx[95] - xx[103];
3635 xx[95] = xx[49] * xx[15];
3636 xx[108] = xx[102];
3637 xx[109] = - xx[48];
3638 xx[110] = xx[95];
3639 pm_math_cross3(xx + 84, xx + 108, xx + 111);
3640 xx[108] = motionData[251] + (xx[63] * xx[41] + xx[105]) * xx[4] + xx[4] * (xx
3641 [111] + xx[102] * xx[41]) + xx[15];
3642 xx[109] = (xx[41] * xx[69] + xx[106]) * xx[4] + xx[4] * (xx[112] - xx[48] *
3643 xx[41]);
3644 xx[110] = (xx[60] * xx[41] + xx[107]) * xx[4] + (xx[95] * xx[41] + xx[113]) *
3645 xx[4] - motionData[249] - xx[6];
3646 pm_math_quatXform(xx + 36, xx + 108, xx + 104);
3647 xx[107] = xx[4] * (xx[74] - xx[73]);
3648 xx[108] = (xx[93] + xx[88]) * xx[4];
3649 xx[109] = xx[5] - (xx[87] + xx[62]) * xx[4];
3650 pm_math_cross3(xx + 107, xx + 16, xx + 110);
3651 pm_math_quatXform(xx + 89, xx + 110, xx + 107);
3652 xx[15] = xx[61] * motionData[249];
3653 xx[48] = xx[61] * motionData[250];
3654 xx[49] = xx[65] - xx[40];
3655 xx[87] = xx[15];
3656 xx[88] = xx[48];
3657 xx[89] = xx[49];
3658 pm_math_cross3(xx + 84, xx + 87, xx + 90);
3659 xx[40] = xx[61] * xx[6];
3660 xx[60] = xx[61] * xx[8];
3661 xx[61] = xx[103] + xx[94];
3662 xx[87] = xx[40];
3663 xx[88] = - xx[60];
3664 xx[89] = xx[61];
3665 pm_math_cross3(xx + 84, xx + 87, xx + 93);
3666 xx[84] = (xx[15] * xx[41] + xx[90]) * xx[4] + (xx[40] * xx[41] + xx[93]) * xx
3667 [4] - motionData[250] + xx[8];
3668 xx[85] = motionData[249] + (xx[48] * xx[41] + xx[91]) * xx[4] + xx[4] * (xx[94]
3669 - xx[60] * xx[41]) + xx[6];
3670 xx[86] = (xx[41] * xx[49] + xx[92]) * xx[4] + (xx[61] * xx[41] + xx[95]) * xx
3671 [4];
3672 pm_math_quatXform(xx + 36, xx + 84, xx + 60);
3673 xx[15] = xx[2] * state[30];
3674 xx[36] = cos(xx[15]);
3675 xx[37] = sin(xx[15]);
3676 xx[38] = xx[36] * motionData[217] - xx[37] * motionData[220];
3677 xx[39] = xx[36] * motionData[218] + xx[37] * motionData[219];
3678 xx[40] = xx[36] * motionData[219] - xx[37] * motionData[218];
3679 xx[41] = xx[37] * motionData[217] + xx[36] * motionData[220];
3680 xx[84] = motionData[49];
3681 xx[85] = motionData[50];
3682 xx[86] = motionData[51];
3683 xx[87] = motionData[52];
3684 pm_math_quatCompose(xx + 38, xx + 84, xx + 88);
3685 xx[38] = xx[4] * (motionData[50] * motionData[52] - motionData[49] *
3686 motionData[51]);
3687 xx[39] = (motionData[49] * motionData[50] + motionData[51] * motionData[52]) *
3688 xx[4];
3689 xx[40] = xx[5] - (motionData[50] * motionData[50] + motionData[51] *
3690 motionData[51]) * xx[4];
3691 pm_math_cross3(xx + 38, xx + 16, xx + 84);
3692 pm_math_quatXform(xx + 88, xx + 84, xx + 15);
3693 xx[18] = xx[37] * motionData[54];
3694 xx[38] = xx[37] * motionData[53];
3695 xx[39] = 0.02540000000000185;
3696 xx[40] = xx[39] * xx[37];
3697 xx[41] = xx[4] * (xx[18] * xx[37] - xx[36] * xx[38]) - motionData[54] + xx[4] *
3698 xx[36] * xx[40];
3699 xx[84] = motionData[218];
3700 xx[85] = motionData[219];
3701 xx[86] = motionData[220];
3702 xx[48] = motionData[53] - ((xx[36] * xx[18] + xx[38] * xx[37]) * xx[4] - xx[4]
3703 * xx[40] * xx[37]) - xx[39];
3704 xx[18] = xx[48] * motionData[220];
3705 xx[36] = xx[41] * motionData[220];
3706 xx[37] = xx[48] * motionData[218] - xx[41] * motionData[219];
3707 xx[38] = - xx[18];
3708 xx[39] = xx[36];
3709 xx[40] = xx[37];
3710 pm_math_cross3(xx + 84, xx + 38, xx + 87);
3711 xx[38] = xx[2] * state[32];
3712 xx[39] = cos(xx[38]);
3713 xx[40] = sin(xx[38]);
3714 xx[38] = xx[39] * motionData[225] - xx[40] * motionData[226];
3715 xx[49] = xx[39] * motionData[226] + xx[40] * motionData[225];
3716 xx[63] = xx[39] * motionData[227] - xx[40] * motionData[224];
3717 xx[84] = xx[38];
3718 xx[85] = xx[49];
3719 xx[86] = xx[63];
3720 xx[65] = xx[6] * xx[63];
3721 xx[69] = xx[8] * xx[63];
3722 xx[63] = xx[6] * xx[38] - xx[49] * xx[8];
3723 xx[90] = - xx[65];
3724 xx[91] = xx[69];
3725 xx[92] = xx[63];
3726 pm_math_cross3(xx + 84, xx + 90, xx + 93);
3727 xx[38] = xx[39] * motionData[224] + xx[40] * motionData[227];
3728 xx[49] = 2.191920996097441e-12;
3729 xx[73] = xx[49] * xx[40];
3730 xx[74] = 3.368449963403463e-13;
3731 xx[84] = xx[74] * xx[40];
3732 xx[85] = xx[4] * (xx[73] * xx[40] - xx[39] * xx[84]) - xx[49];
3733 xx[90] = motionData[225];
3734 xx[91] = motionData[226];
3735 xx[92] = motionData[227];
3736 xx[49] = (xx[39] * xx[73] + xx[84] * xx[40]) * xx[4] - xx[74];
3737 xx[39] = xx[49] * motionData[227];
3738 xx[40] = xx[85] * motionData[227];
3739 xx[73] = xx[49] * motionData[225] - xx[85] * motionData[226];
3740 xx[110] = - xx[39];
3741 xx[111] = xx[40];
3742 xx[112] = xx[73];
3743 pm_math_cross3(xx + 90, xx + 110, xx + 113);
3744 xx[74] = 0.389585375426561;
3745 xx[84] = xx[2] * state[64];
3746 xx[86] = cos(xx[84]);
3747 xx[90] = 0.3895819001770367;
3748 xx[91] = sin(xx[84]);
3749 xx[84] = xx[74] * xx[86] - xx[90] * xx[91];
3750 xx[92] = 0.5901074779979936;
3751 xx[102] = 0.5901036711621467;
3752 xx[103] = xx[92] * xx[86] + xx[102] * xx[91];
3753 xx[110] = - xx[103];
3754 xx[111] = xx[102] * xx[86] - xx[92] * xx[91];
3755 xx[92] = xx[90] * xx[86] + xx[74] * xx[91];
3756 xx[74] = - xx[92];
3757 xx[116] = xx[84];
3758 xx[117] = xx[110];
3759 xx[118] = xx[111];
3760 xx[119] = xx[74];
3761 xx[120] = motionData[238];
3762 xx[121] = motionData[239];
3763 xx[122] = motionData[240];
3764 xx[123] = motionData[241];
3765 pm_math_quatCompose(xx + 116, xx + 120, xx + 124);
3766 xx[116] = xx[4] * (motionData[238] * motionData[240] - motionData[239] *
3767 motionData[241]);
3768 xx[117] = - ((motionData[238] * motionData[239] + motionData[240] *
3769 motionData[241]) * xx[4]);
3770 xx[118] = (motionData[239] * motionData[239] + motionData[240] * motionData
3771 [240]) * xx[4] - xx[5];
3772 xx[86] = 3.641924106626229e-8;
3773 xx[90] = 0.04574999999998041;
3774 xx[91] = 2.92603149291605e-7;
3775 xx[119] = xx[86];
3776 xx[120] = xx[90];
3777 xx[121] = xx[91];
3778 pm_math_cross3(xx + 116, xx + 119, xx + 128);
3779 pm_math_quatXform(xx + 124, xx + 128, xx + 116);
3780 xx[122] = xx[110];
3781 xx[123] = xx[111];
3782 xx[124] = xx[74];
3783 xx[74] = xx[92] * motionData[242];
3784 xx[102] = xx[92] * motionData[243];
3785 xx[110] = xx[111] * motionData[243] - xx[103] * motionData[242];
3786 xx[125] = - xx[74];
3787 xx[126] = - xx[102];
3788 xx[127] = - xx[110];
3789 pm_math_cross3(xx + 122, xx + 125, xx + 128);
3790 xx[112] = xx[19] * xx[103];
3791 xx[122] = xx[19] * xx[92];
3792 xx[123] = xx[2] * state[66];
3793 xx[2] = cos(xx[123]);
3794 xx[124] = sin(xx[123]);
3795 xx[131] = xx[2] * motionData[127] - xx[124] * motionData[128];
3796 xx[132] = - (xx[2] * motionData[126] + xx[124] * motionData[129]);
3797 xx[133] = xx[124] * motionData[126] - xx[2] * motionData[129];
3798 xx[134] = xx[124] * motionData[127] + xx[2] * motionData[128];
3799 xx[135] = motionData[140];
3800 xx[136] = motionData[141];
3801 xx[137] = motionData[142];
3802 xx[138] = motionData[143];
3803 pm_math_quatCompose(xx + 131, xx + 135, xx + 139);
3804 xx[125] = xx[4] * (motionData[141] * motionData[143] - motionData[140] *
3805 motionData[142]);
3806 xx[126] = (motionData[140] * motionData[141] + motionData[142] * motionData
3807 [143]) * xx[4];
3808 xx[127] = xx[5] - (motionData[141] * motionData[141] + motionData[142] *
3809 motionData[142]) * xx[4];
3810 pm_math_cross3(xx + 125, xx + 119, xx + 131);
3811 pm_math_quatXform(xx + 139, xx + 131, xx + 119);
3812 xx[5] = xx[124] * motionData[145] - xx[2] * motionData[144];
3813 xx[123] = 6.924287580811761e-12;
3814 xx[125] = 1.024070757638107e-11;
3815 xx[126] = xx[123] * xx[124] - xx[125] * xx[2];
3816 xx[127] = xx[4] * xx[124] * xx[5] - (motionData[145] + xx[4] * xx[126] * xx
3817 [124]) + xx[123];
3818 xx[131] = motionData[127];
3819 xx[132] = motionData[128];
3820 xx[133] = motionData[129];
3821 xx[123] = motionData[144] + xx[4] * xx[2] * xx[5] - xx[4] * xx[126] * xx[2] -
3822 xx[125];
3823 xx[2] = xx[123] * motionData[129];
3824 xx[5] = xx[127] * motionData[129];
3825 xx[124] = xx[123] * motionData[127] - xx[127] * motionData[128];
3826 xx[134] = - xx[2];
3827 xx[135] = xx[5];
3828 xx[136] = xx[124];
3829 pm_math_cross3(xx + 131, xx + 134, xx + 137);
3830 xx[131] = motionData[189];
3831 xx[132] = motionData[190];
3832 xx[133] = motionData[191];
3833 xx[134] = motionData[192];
3834 xx[125] = xx[33] * state[71] - xx[34] * state[68];
3835 xx[126] = xx[33] * state[70] + xx[34] * state[69];
3836 xx[135] = - xx[126];
3837 xx[136] = xx[34] * state[70] - xx[33] * state[69];
3838 xx[140] = - xx[136];
3839 xx[141] = xx[33] * state[68] + xx[34] * state[71];
3840 xx[33] = - xx[141];
3841 xx[142] = xx[125];
3842 xx[143] = xx[135];
3843 xx[144] = xx[140];
3844 xx[145] = xx[33];
3845 pm_math_quatCompose(xx + 131, xx + 142, xx + 146);
3846 xx[34] = - 2.329268144978725e-13;
3847 xx[150] = xx[34];
3848 xx[151] = - xx[91];
3849 xx[152] = 0.0457500000000094;
3850 pm_math_quatXform(xx + 146, xx + 150, xx + 153);
3851 pm_math_quatXform(xx + 142, xx + 75, xx + 150);
3852 pm_math_quatXform(xx + 131, xx + 150, xx + 75);
3853 xx[150] = xx[91];
3854 xx[151] = xx[34];
3855 xx[152] = 5.855191459023036e-14;
3856 pm_math_quatXform(xx + 146, xx + 150, xx + 156);
3857 pm_math_quatXform(xx + 142, xx + 78, xx + 150);
3858 pm_math_quatXform(xx + 131, xx + 150, xx + 78);
3859 xx[34] = xx[86] * xx[149];
3860 xx[91] = xx[86] * xx[147] + xx[90] * xx[148];
3861 xx[142] = - xx[34];
3862 xx[143] = - (xx[90] * xx[149]);
3863 xx[144] = xx[91];
3864 pm_math_cross3(xx + 147, xx + 142, xx + 150);
3865 xx[142] = xx[135];
3866 xx[143] = xx[140];
3867 xx[144] = xx[33];
3868 xx[33] = xx[53] * xx[141];
3869 xx[135] = xx[64] * xx[141];
3870 xx[140] = xx[53] * xx[126] + xx[136] * xx[64];
3871 xx[159] = xx[33];
3872 xx[160] = xx[135];
3873 xx[161] = - xx[140];
3874 pm_math_cross3(xx + 142, xx + 159, xx + 162);
3875 xx[141] = xx[4] * (xx[162] + xx[33] * xx[125]) - xx[64];
3876 xx[142] = xx[53] + (xx[135] * xx[125] + xx[163]) * xx[4];
3877 xx[143] = (xx[164] - xx[140] * xx[125]) * xx[4];
3878 pm_math_quatXform(xx + 131, xx + 141, xx + 159);
3879 J[6] = xx[12] + motionData[271] + (xx[26] - xx[3] * xx[1]) * xx[4] + xx[4] *
3880 (xx[11] * xx[20] - xx[3] * xx[21]);
3881 J[7] = xx[29] + xx[35] + xx[4] * (xx[42] - xx[23] * motionData[14]);
3882 J[8] = xx[66] + xx[70];
3883 J[9] = xx[54] + xx[57];
3884 J[10] = xx[50] + xx[45];
3885 J[11] = xx[81] + xx[96];
3886 J[12] = xx[99] + xx[104];
3887 J[13] = xx[107] + xx[60];
3888 J[14] = xx[15] + xx[41] + xx[4] * (xx[87] - xx[18] * motionData[217]);
3889 J[15] = xx[4] * (xx[93] - xx[38] * xx[65]) + xx[85] + xx[4] * (xx[113] - xx[39]
3890 * motionData[224]) + xx[8];
3891 J[30] = - (xx[116] + motionData[243] + (xx[128] - xx[84] * xx[74]) * xx[4] +
3892 xx[4] * (xx[111] * xx[112] - xx[84] * xx[122]));
3893 J[31] = - (xx[119] + xx[127] + xx[4] * (xx[137] - xx[2] * motionData[126]));
3894 J[32] = - (xx[153] + xx[75]);
3895 J[33] = - (xx[156] + xx[78]);
3896 J[34] = - (xx[4] * (xx[150] - xx[146] * xx[34]) + xx[159] - xx[90]);
3897 J[51] = xx[13] + (xx[27] - xx[3] * xx[10]) * xx[4] - (motionData[270] - (xx[21]
3898 * xx[7] + xx[20] * xx[9]) * xx[4]) - xx[19];
3899 J[52] = xx[30] + xx[25] + (xx[24] * motionData[14] + xx[43]) * xx[4];
3900 J[53] = xx[67] + xx[71];
3901 J[54] = xx[55] + xx[58];
3902 J[55] = xx[51] + xx[46];
3903 J[56] = xx[82] + xx[97];
3904 J[57] = xx[100] + xx[105];
3905 J[58] = xx[108] + xx[61];
3906 J[59] = xx[16] + xx[48] + (xx[36] * motionData[217] + xx[88]) * xx[4];
3907 J[60] = (xx[38] * xx[69] + xx[94]) * xx[4] + xx[49] + (xx[40] * motionData[224]
3908 + xx[114]) * xx[4] + xx[6];
3909 J[75] = - (xx[117] + (xx[129] - xx[84] * xx[102]) * xx[4] - (motionData[242] -
3910 (xx[122] * xx[92] + xx[112] * xx[103]) * xx[4]) - xx[19]);
3911 J[76] = - (xx[120] + xx[123] + (xx[5] * motionData[126] + xx[138]) * xx[4]);
3912 J[77] = - (xx[154] + xx[76]);
3913 J[78] = - (xx[157] + xx[79]);
3914 J[79] = - ((xx[151] - xx[90] * xx[146] * xx[149]) * xx[4] + xx[160] + xx[86]);
3915 J[96] = xx[14] + xx[4] * (xx[28] - xx[3] * xx[22]) + (xx[3] * xx[20] + xx[11] *
3916 xx[21]) * xx[4];
3917 J[97] = xx[31] + (xx[32] * motionData[14] + xx[44]) * xx[4];
3918 J[98] = xx[68] + xx[72];
3919 J[99] = xx[56] + xx[59];
3920 J[100] = xx[52] + xx[47];
3921 J[101] = xx[83] + xx[98];
3922 J[102] = xx[101] + xx[106];
3923 J[103] = xx[109] + xx[62];
3924 J[104] = xx[17] + (xx[37] * motionData[217] + xx[89]) * xx[4];
3925 J[105] = (xx[38] * xx[63] + xx[95]) * xx[4] + (xx[73] * motionData[224] + xx
3926 [115]) * xx[4];
3927 J[120] = - (xx[118] + xx[4] * (xx[130] - xx[84] * xx[110]) + (xx[84] * xx[112]
3928 + xx[111] * xx[122]) * xx[4]);
3929 J[121] = - (xx[121] + (xx[124] * motionData[126] + xx[139]) * xx[4]);
3930 J[122] = - (xx[155] + xx[77]);
3931 J[123] = - (xx[158] + xx[80]);
3932 J[124] = - ((xx[146] * xx[91] + xx[152]) * xx[4] + xx[161]);
3933 return 3;
3934}
3935
3936static size_t computeAssemblyJacobian_1(const double *rtdv, const double *state,
3937 const double *motionData, double *J)
3938{
3939 double xx[160];
3940 (void) rtdv;
3941 xx[0] = 0.0;
3942 xx[1] = 0.3895853754265615;
3943 xx[2] = 0.5;
3944 xx[3] = xx[2] * state[12];
3945 xx[4] = cos(xx[3]);
3946 xx[5] = 0.389581900177037;
3947 xx[6] = sin(xx[3]);
3948 xx[3] = xx[1] * xx[4] - xx[5] * xx[6];
3949 xx[7] = 0.5901074779979933;
3950 xx[8] = 0.5901036711621462;
3951 xx[9] = xx[7] * xx[4] + xx[8] * xx[6];
3952 xx[10] = - xx[9];
3953 xx[11] = xx[8] * xx[4] - xx[7] * xx[6];
3954 xx[7] = xx[5] * xx[4] + xx[1] * xx[6];
3955 xx[1] = - xx[7];
3956 xx[12] = xx[3];
3957 xx[13] = xx[10];
3958 xx[14] = xx[11];
3959 xx[15] = xx[1];
3960 xx[16] = motionData[322];
3961 xx[17] = motionData[323];
3962 xx[18] = motionData[324];
3963 xx[19] = motionData[325];
3964 pm_math_quatCompose(xx + 12, xx + 16, xx + 20);
3965 xx[4] = 2.0;
3966 xx[5] = 1.0;
3967 xx[12] = xx[4] * (motionData[322] * motionData[324] - motionData[323] *
3968 motionData[325]);
3969 xx[13] = - ((motionData[322] * motionData[323] + motionData[324] * motionData
3970 [325]) * xx[4]);
3971 xx[14] = (motionData[323] * motionData[323] + motionData[324] * motionData[324])
3972 * xx[4] - xx[5];
3973 xx[6] = 7.599121945184391e-12;
3974 xx[8] = 5.036130209737022e-12;
3975 xx[15] = 5.192027881355888e-12;
3976 xx[16] = - xx[6];
3977 xx[17] = xx[8];
3978 xx[18] = - xx[15];
3979 pm_math_cross3(xx + 12, xx + 16, xx + 24);
3980 pm_math_quatXform(xx + 20, xx + 24, xx + 12);
3981 xx[19] = xx[10];
3982 xx[20] = xx[11];
3983 xx[21] = xx[1];
3984 xx[1] = xx[7] * motionData[326];
3985 xx[10] = xx[7] * motionData[327];
3986 xx[22] = xx[11] * motionData[327] - xx[9] * motionData[326];
3987 xx[23] = - xx[1];
3988 xx[24] = - xx[10];
3989 xx[25] = - xx[22];
3990 pm_math_cross3(xx + 19, xx + 23, xx + 26);
3991 xx[19] = 0.02520954632904373;
3992 xx[20] = xx[19] * xx[9];
3993 xx[21] = xx[19] * xx[7];
3994 xx[23] = xx[2] * state[14];
3995 xx[24] = cos(xx[23]);
3996 xx[25] = sin(xx[23]);
3997 xx[29] = xx[24] * motionData[15] - xx[25] * motionData[16];
3998 xx[30] = - (xx[24] * motionData[14] + xx[25] * motionData[17]);
3999 xx[31] = xx[25] * motionData[14] - xx[24] * motionData[17];
4000 xx[32] = xx[25] * motionData[15] + xx[24] * motionData[16];
4001 xx[33] = motionData[315];
4002 xx[34] = motionData[316];
4003 xx[35] = motionData[317];
4004 xx[36] = motionData[318];
4005 pm_math_quatCompose(xx + 29, xx + 33, xx + 37);
4006 xx[29] = xx[4] * (motionData[316] * motionData[318] - motionData[315] *
4007 motionData[317]);
4008 xx[30] = (motionData[315] * motionData[316] + motionData[317] * motionData[318])
4009 * xx[4];
4010 xx[31] = xx[5] - (motionData[316] * motionData[316] + motionData[317] *
4011 motionData[317]) * xx[4];
4012 pm_math_cross3(xx + 29, xx + 16, xx + 32);
4013 pm_math_quatXform(xx + 37, xx + 32, xx + 29);
4014 xx[23] = xx[25] * motionData[320] - xx[24] * motionData[319];
4015 xx[32] = 7.748428954013064e-12;
4016 xx[33] = 5.376764528053357e-12;
4017 xx[34] = xx[32] * xx[24] - xx[33] * xx[25];
4018 xx[35] = xx[4] * xx[25] * xx[23] - (motionData[320] + xx[4] * xx[34] * xx[25])
4019 - xx[33];
4020 xx[36] = motionData[15];
4021 xx[37] = motionData[16];
4022 xx[38] = motionData[17];
4023 xx[25] = motionData[319] + xx[4] * xx[24] * xx[23] - xx[4] * xx[34] * xx[24] +
4024 xx[32];
4025 xx[23] = xx[25] * motionData[17];
4026 xx[24] = xx[35] * motionData[17];
4027 xx[32] = xx[25] * motionData[15] - xx[35] * motionData[16];
4028 xx[39] = - xx[23];
4029 xx[40] = xx[24];
4030 xx[41] = xx[32];
4031 pm_math_cross3(xx + 36, xx + 39, xx + 42);
4032 xx[36] = motionData[203];
4033 xx[37] = motionData[204];
4034 xx[38] = motionData[205];
4035 xx[39] = motionData[206];
4036 xx[33] = 3.980251324392935e-7;
4037 xx[34] = 0.999999999999921;
4038 xx[40] = xx[33] * state[19] - xx[34] * state[16];
4039 xx[41] = xx[33] * state[18] + xx[34] * state[17];
4040 xx[45] = - xx[41];
4041 xx[46] = xx[34] * state[18] - xx[33] * state[17];
4042 xx[47] = - xx[46];
4043 xx[48] = xx[33] * state[16] + xx[34] * state[19];
4044 xx[49] = - xx[48];
4045 xx[50] = xx[40];
4046 xx[51] = xx[45];
4047 xx[52] = xx[47];
4048 xx[53] = xx[49];
4049 pm_math_quatCompose(xx + 36, xx + 50, xx + 54);
4050 xx[58] = motionData[308];
4051 xx[59] = motionData[309];
4052 xx[60] = motionData[310];
4053 xx[61] = motionData[311];
4054 pm_math_quatCompose(xx + 54, xx + 58, xx + 62);
4055 xx[54] = motionData[309];
4056 xx[55] = motionData[310];
4057 xx[56] = motionData[311];
4058 xx[57] = 7.960502648785241e-7;
4059 xx[58] = xx[57] * motionData[311];
4060 xx[59] = xx[57] * motionData[309] + motionData[310];
4061 xx[66] = xx[58];
4062 xx[67] = motionData[311];
4063 xx[68] = - xx[59];
4064 pm_math_cross3(xx + 54, xx + 66, xx + 69);
4065 xx[60] = motionData[308] * motionData[311];
4066 xx[66] = xx[5] + (xx[69] - xx[58] * motionData[308]) * xx[4];
4067 xx[67] = xx[4] * (xx[70] - xx[60]) - xx[57];
4068 xx[68] = xx[4] * (xx[71] + xx[59] * motionData[308]);
4069 pm_math_cross3(xx + 66, xx + 16, xx + 69);
4070 pm_math_quatXform(xx + 62, xx + 69, xx + 66);
4071 xx[59] = - (xx[57] * motionData[314]);
4072 xx[69] = xx[59];
4073 xx[70] = - motionData[314];
4074 xx[71] = motionData[313] + xx[57] * motionData[312];
4075 pm_math_quatXform(xx + 50, xx + 69, xx + 72);
4076 xx[61] = 2.329280111075767e-13;
4077 xx[69] = 2.926046524751139e-7;
4078 xx[75] = xx[61];
4079 xx[76] = xx[69];
4080 xx[77] = 0.04575000000718987;
4081 pm_math_quatXform(xx + 50, xx + 75, xx + 78);
4082 xx[81] = xx[72] + xx[78];
4083 xx[82] = xx[73] + xx[79];
4084 xx[83] = xx[74] + xx[80];
4085 pm_math_quatXform(xx + 36, xx + 81, xx + 70);
4086 xx[73] = motionData[309] - xx[57] * motionData[310];
4087 xx[78] = - motionData[311];
4088 xx[79] = xx[58];
4089 xx[80] = xx[73];
4090 pm_math_cross3(xx + 54, xx + 78, xx + 81);
4091 xx[54] = xx[57] + (xx[60] + xx[81]) * xx[4];
4092 xx[55] = xx[5] + xx[4] * (xx[82] - xx[57] * xx[60]);
4093 xx[56] = xx[4] * (xx[83] - xx[73] * motionData[308]);
4094 pm_math_cross3(xx + 54, xx + 16, xx + 78);
4095 pm_math_quatXform(xx + 62, xx + 78, xx + 54);
4096 xx[78] = motionData[314];
4097 xx[79] = xx[59];
4098 xx[80] = xx[57] * motionData[313] - motionData[312];
4099 pm_math_quatXform(xx + 50, xx + 78, xx + 57);
4100 xx[78] = - xx[69];
4101 xx[79] = xx[61];
4102 xx[80] = 7.670997177269469e-12;
4103 pm_math_quatXform(xx + 50, xx + 78, xx + 81);
4104 xx[50] = xx[57] + xx[81];
4105 xx[51] = xx[58] + xx[82];
4106 xx[52] = xx[59] + xx[83];
4107 pm_math_quatXform(xx + 36, xx + 50, xx + 57);
4108 xx[50] = xx[4] * (motionData[309] * motionData[311] - motionData[308] *
4109 motionData[310]);
4110 xx[51] = (motionData[308] * motionData[309] + motionData[310] * motionData[311])
4111 * xx[4];
4112 xx[52] = xx[5] - (motionData[309] * motionData[309] + motionData[310] *
4113 motionData[310]) * xx[4];
4114 pm_math_cross3(xx + 50, xx + 16, xx + 81);
4115 pm_math_quatXform(xx + 62, xx + 81, xx + 50);
4116 xx[60] = xx[45];
4117 xx[61] = xx[47];
4118 xx[62] = xx[49];
4119 xx[45] = xx[48] * motionData[312];
4120 xx[47] = xx[48] * motionData[313];
4121 xx[49] = xx[41] * motionData[312] + xx[46] * motionData[313];
4122 xx[63] = xx[45];
4123 xx[64] = xx[47];
4124 xx[65] = - xx[49];
4125 pm_math_cross3(xx + 60, xx + 63, xx + 81);
4126 xx[53] = 3.641162862673871e-8;
4127 xx[63] = xx[53] * xx[48];
4128 xx[64] = 0.04575000000717538;
4129 xx[65] = xx[64] * xx[48];
4130 xx[48] = xx[53] * xx[41] + xx[46] * xx[64];
4131 xx[84] = xx[63];
4132 xx[85] = xx[65];
4133 xx[86] = - xx[48];
4134 pm_math_cross3(xx + 60, xx + 84, xx + 87);
4135 xx[60] = xx[4] * (xx[81] + xx[45] * xx[40]) + xx[4] * (xx[87] + xx[63] * xx[40])
4136 - motionData[313] - xx[64];
4137 xx[61] = motionData[312] + xx[4] * (xx[82] + xx[47] * xx[40]) + (xx[65] * xx
4138 [40] + xx[88]) * xx[4] + xx[53];
4139 xx[62] = (xx[83] - xx[40] * xx[49]) * xx[4] + (xx[89] - xx[48] * xx[40]) * xx
4140 [4];
4141 pm_math_quatXform(xx + 36, xx + 60, xx + 45);
4142 xx[36] = motionData[210];
4143 xx[37] = motionData[211];
4144 xx[38] = motionData[212];
4145 xx[39] = motionData[213];
4146 xx[40] = 3.980251340548381e-7;
4147 xx[41] = xx[34] * state[26] - xx[40] * state[23];
4148 xx[48] = xx[34] * state[25] - xx[40] * state[24];
4149 xx[49] = xx[40] * state[25] + xx[34] * state[24];
4150 xx[60] = - xx[49];
4151 xx[61] = xx[40] * state[26] + xx[34] * state[23];
4152 xx[40] = - xx[61];
4153 xx[81] = xx[41];
4154 xx[82] = xx[48];
4155 xx[83] = xx[60];
4156 xx[84] = xx[40];
4157 pm_math_quatCompose(xx + 36, xx + 81, xx + 85);
4158 xx[81] = motionData[301];
4159 xx[82] = motionData[302];
4160 xx[83] = motionData[303];
4161 xx[84] = motionData[304];
4162 pm_math_quatCompose(xx + 85, xx + 81, xx + 89);
4163 xx[62] = motionData[303] * motionData[303];
4164 xx[63] = motionData[304] * motionData[304];
4165 xx[65] = motionData[302] * motionData[303];
4166 xx[69] = motionData[301] * motionData[304];
4167 xx[73] = motionData[301] * motionData[303];
4168 xx[74] = motionData[302] * motionData[304];
4169 xx[81] = xx[5] - (xx[62] + xx[63]) * xx[4];
4170 xx[82] = xx[4] * (xx[65] - xx[69]);
4171 xx[83] = (xx[73] + xx[74]) * xx[4];
4172 pm_math_cross3(xx + 81, xx + 16, xx + 84);
4173 pm_math_quatXform(xx + 89, xx + 84, xx + 81);
4174 xx[84] = xx[48];
4175 xx[85] = xx[60];
4176 xx[86] = xx[40];
4177 xx[40] = xx[49] * motionData[306];
4178 xx[60] = xx[61] * motionData[307];
4179 xx[87] = xx[40] + xx[60];
4180 xx[88] = xx[48] * motionData[306];
4181 xx[93] = xx[48] * motionData[307];
4182 xx[94] = - xx[87];
4183 xx[95] = - xx[88];
4184 xx[96] = - xx[93];
4185 pm_math_cross3(xx + 84, xx + 94, xx + 97);
4186 xx[94] = xx[49] * xx[8];
4187 xx[95] = xx[61] * xx[15];
4188 xx[96] = xx[94] - xx[95];
4189 xx[100] = xx[8] * xx[48];
4190 xx[101] = xx[15] * xx[48];
4191 xx[102] = xx[96];
4192 xx[103] = xx[100];
4193 xx[104] = - xx[101];
4194 pm_math_cross3(xx + 84, xx + 102, xx + 105);
4195 xx[102] = xx[4] * (xx[97] - xx[87] * xx[41]) + (xx[41] * xx[96] + xx[105]) *
4196 xx[4];
4197 xx[103] = xx[4] * (xx[98] - xx[88] * xx[41]) + xx[4] * (xx[106] + xx[100] *
4198 xx[41]) - motionData[307] - xx[15];
4199 xx[104] = motionData[306] + xx[4] * (xx[99] - xx[93] * xx[41]) + (xx[107] -
4200 xx[101] * xx[41]) * xx[4] - xx[8];
4201 pm_math_quatXform(xx + 36, xx + 102, xx + 96);
4202 xx[87] = motionData[302] * motionData[302];
4203 xx[88] = motionData[303] * motionData[304];
4204 xx[93] = motionData[301] * motionData[302];
4205 xx[99] = (xx[69] + xx[65]) * xx[4];
4206 xx[100] = xx[5] - (xx[63] + xx[87]) * xx[4];
4207 xx[101] = xx[4] * (xx[88] - xx[93]);
4208 pm_math_cross3(xx + 99, xx + 16, xx + 102);
4209 pm_math_quatXform(xx + 89, xx + 102, xx + 99);
4210 xx[63] = xx[49] * motionData[305];
4211 xx[65] = xx[48] * motionData[305];
4212 xx[69] = xx[65] - xx[60];
4213 xx[60] = xx[49] * motionData[307];
4214 xx[102] = xx[63];
4215 xx[103] = xx[69];
4216 xx[104] = xx[60];
4217 pm_math_cross3(xx + 84, xx + 102, xx + 105);
4218 xx[102] = xx[49] * xx[6];
4219 xx[103] = xx[6] * xx[48];
4220 xx[48] = xx[95] - xx[103];
4221 xx[95] = xx[49] * xx[15];
4222 xx[108] = xx[102];
4223 xx[109] = - xx[48];
4224 xx[110] = xx[95];
4225 pm_math_cross3(xx + 84, xx + 108, xx + 111);
4226 xx[108] = motionData[307] + (xx[63] * xx[41] + xx[105]) * xx[4] + xx[4] * (xx
4227 [111] + xx[102] * xx[41]) + xx[15];
4228 xx[109] = (xx[41] * xx[69] + xx[106]) * xx[4] + xx[4] * (xx[112] - xx[48] *
4229 xx[41]);
4230 xx[110] = (xx[60] * xx[41] + xx[107]) * xx[4] + (xx[95] * xx[41] + xx[113]) *
4231 xx[4] - motionData[305] - xx[6];
4232 pm_math_quatXform(xx + 36, xx + 108, xx + 104);
4233 xx[107] = xx[4] * (xx[74] - xx[73]);
4234 xx[108] = (xx[93] + xx[88]) * xx[4];
4235 xx[109] = xx[5] - (xx[87] + xx[62]) * xx[4];
4236 pm_math_cross3(xx + 107, xx + 16, xx + 110);
4237 pm_math_quatXform(xx + 89, xx + 110, xx + 107);
4238 xx[15] = xx[61] * motionData[305];
4239 xx[48] = xx[61] * motionData[306];
4240 xx[49] = xx[65] - xx[40];
4241 xx[87] = xx[15];
4242 xx[88] = xx[48];
4243 xx[89] = xx[49];
4244 pm_math_cross3(xx + 84, xx + 87, xx + 90);
4245 xx[40] = xx[61] * xx[6];
4246 xx[60] = xx[61] * xx[8];
4247 xx[61] = xx[103] + xx[94];
4248 xx[87] = xx[40];
4249 xx[88] = - xx[60];
4250 xx[89] = xx[61];
4251 pm_math_cross3(xx + 84, xx + 87, xx + 93);
4252 xx[84] = (xx[15] * xx[41] + xx[90]) * xx[4] + (xx[40] * xx[41] + xx[93]) * xx
4253 [4] - motionData[306] + xx[8];
4254 xx[85] = motionData[305] + (xx[48] * xx[41] + xx[91]) * xx[4] + xx[4] * (xx[94]
4255 - xx[60] * xx[41]) + xx[6];
4256 xx[86] = (xx[41] * xx[49] + xx[92]) * xx[4] + (xx[61] * xx[41] + xx[95]) * xx
4257 [4];
4258 pm_math_quatXform(xx + 36, xx + 84, xx + 60);
4259 xx[15] = xx[2] * state[30];
4260 xx[36] = cos(xx[15]);
4261 xx[37] = sin(xx[15]);
4262 xx[38] = xx[36] * motionData[217] - xx[37] * motionData[220];
4263 xx[39] = xx[36] * motionData[218] + xx[37] * motionData[219];
4264 xx[40] = xx[36] * motionData[219] - xx[37] * motionData[218];
4265 xx[41] = xx[37] * motionData[217] + xx[36] * motionData[220];
4266 xx[84] = motionData[56];
4267 xx[85] = motionData[57];
4268 xx[86] = motionData[58];
4269 xx[87] = motionData[59];
4270 pm_math_quatCompose(xx + 38, xx + 84, xx + 88);
4271 xx[38] = xx[4] * (motionData[57] * motionData[59] - motionData[56] *
4272 motionData[58]);
4273 xx[39] = (motionData[56] * motionData[57] + motionData[58] * motionData[59]) *
4274 xx[4];
4275 xx[40] = xx[5] - (motionData[57] * motionData[57] + motionData[58] *
4276 motionData[58]) * xx[4];
4277 pm_math_cross3(xx + 38, xx + 16, xx + 84);
4278 pm_math_quatXform(xx + 88, xx + 84, xx + 15);
4279 xx[18] = xx[37] * motionData[61];
4280 xx[38] = xx[37] * motionData[60];
4281 xx[39] = 0.02540000000000185;
4282 xx[40] = xx[39] * xx[37];
4283 xx[41] = xx[4] * (xx[18] * xx[37] - xx[36] * xx[38]) - motionData[61] + xx[4] *
4284 xx[36] * xx[40];
4285 xx[84] = motionData[218];
4286 xx[85] = motionData[219];
4287 xx[86] = motionData[220];
4288 xx[48] = motionData[60] - ((xx[36] * xx[18] + xx[38] * xx[37]) * xx[4] - xx[4]
4289 * xx[40] * xx[37]) - xx[39];
4290 xx[18] = xx[48] * motionData[220];
4291 xx[36] = xx[41] * motionData[220];
4292 xx[37] = xx[48] * motionData[218] - xx[41] * motionData[219];
4293 xx[38] = - xx[18];
4294 xx[39] = xx[36];
4295 xx[40] = xx[37];
4296 pm_math_cross3(xx + 84, xx + 38, xx + 87);
4297 xx[90] = motionData[224];
4298 xx[91] = motionData[225];
4299 xx[92] = motionData[226];
4300 xx[93] = motionData[227];
4301 xx[38] = 0.6123724356957949;
4302 xx[39] = xx[2] * state[34];
4303 xx[40] = sin(xx[39]);
4304 xx[49] = xx[38] * xx[40];
4305 xx[63] = cos(xx[39]);
4306 xx[39] = xx[38] * xx[63];
4307 xx[38] = xx[49] - xx[39];
4308 xx[65] = 0.3535533905932732;
4309 xx[69] = xx[65] * xx[63];
4310 xx[63] = xx[65] * xx[40];
4311 xx[40] = xx[69] + xx[63];
4312 xx[65] = - xx[40];
4313 xx[73] = xx[63] - xx[69];
4314 xx[63] = xx[49] + xx[39];
4315 xx[39] = - xx[63];
4316 xx[110] = xx[38];
4317 xx[111] = xx[65];
4318 xx[112] = xx[73];
4319 xx[113] = xx[39];
4320 pm_math_quatCompose(xx + 90, xx + 110, xx + 114);
4321 xx[49] = xx[6] * xx[117];
4322 xx[69] = xx[8] * xx[116] - xx[6] * xx[115];
4323 xx[84] = xx[49];
4324 xx[85] = - (xx[8] * xx[117]);
4325 xx[86] = xx[69];
4326 pm_math_cross3(xx + 115, xx + 84, xx + 110);
4327 xx[84] = xx[65];
4328 xx[85] = xx[73];
4329 xx[86] = xx[39];
4330 xx[39] = 1.121202762681406e-11;
4331 xx[65] = xx[63] * xx[39];
4332 xx[74] = 6.145027516349377e-13;
4333 xx[94] = xx[63] * xx[74];
4334 xx[63] = xx[74] * xx[73] - xx[40] * xx[39];
4335 xx[118] = xx[65];
4336 xx[119] = xx[94];
4337 xx[120] = xx[63];
4338 pm_math_cross3(xx + 84, xx + 118, xx + 121);
4339 xx[84] = xx[4] * (xx[121] + xx[65] * xx[38]) - xx[74];
4340 xx[85] = xx[39] + (xx[94] * xx[38] + xx[122]) * xx[4];
4341 xx[86] = (xx[63] * xx[38] + xx[123]) * xx[4];
4342 pm_math_quatXform(xx + 90, xx + 84, xx + 38);
4343 xx[63] = 0.04233709306330295;
4344 xx[65] = xx[2] * state[53];
4345 xx[73] = cos(xx[65]);
4346 xx[74] = 0.04233598682685397;
4347 xx[84] = sin(xx[65]);
4348 xx[65] = xx[63] * xx[73] + xx[74] * xx[84];
4349 xx[85] = 0.7058357201813958;
4350 xx[86] = 0.7058407546227096;
4351 xx[90] = xx[85] * xx[84] - xx[86] * xx[73];
4352 xx[91] = xx[85] * xx[73] + xx[86] * xx[84];
4353 xx[85] = xx[63] * xx[84] - xx[74] * xx[73];
4354 xx[92] = xx[65];
4355 xx[93] = xx[90];
4356 xx[94] = xx[91];
4357 xx[95] = xx[85];
4358 xx[118] = motionData[294];
4359 xx[119] = motionData[295];
4360 xx[120] = motionData[296];
4361 xx[121] = motionData[297];
4362 pm_math_quatCompose(xx + 92, xx + 118, xx + 122);
4363 xx[92] = xx[4] * (motionData[295] * motionData[297] - motionData[294] *
4364 motionData[296]);
4365 xx[93] = (motionData[294] * motionData[295] + motionData[296] * motionData[297])
4366 * xx[4];
4367 xx[94] = xx[5] - (motionData[295] * motionData[295] + motionData[296] *
4368 motionData[296]) * xx[4];
4369 xx[63] = 3.641924106626229e-8;
4370 xx[73] = 0.04574999999998041;
4371 xx[74] = 2.92603149291605e-7;
4372 xx[118] = xx[63];
4373 xx[119] = xx[73];
4374 xx[120] = xx[74];
4375 pm_math_cross3(xx + 92, xx + 118, xx + 126);
4376 pm_math_quatXform(xx + 122, xx + 126, xx + 92);
4377 xx[121] = xx[90];
4378 xx[122] = xx[91];
4379 xx[123] = xx[85];
4380 xx[84] = xx[85] * motionData[298];
4381 xx[86] = xx[85] * motionData[299];
4382 xx[95] = xx[90] * motionData[298] + xx[91] * motionData[299];
4383 xx[124] = - xx[84];
4384 xx[125] = - xx[86];
4385 xx[126] = xx[95];
4386 pm_math_cross3(xx + 121, xx + 124, xx + 127);
4387 xx[102] = 0.02520954632904374;
4388 xx[103] = xx[90] * xx[102];
4389 xx[113] = xx[85] * xx[102];
4390 xx[115] = xx[2] * state[55];
4391 xx[2] = cos(xx[115]);
4392 xx[116] = sin(xx[115]);
4393 xx[121] = xx[2] * motionData[106] - xx[116] * motionData[107];
4394 xx[122] = - (xx[2] * motionData[105] + xx[116] * motionData[108]);
4395 xx[123] = xx[116] * motionData[105] - xx[2] * motionData[108];
4396 xx[124] = xx[116] * motionData[106] + xx[2] * motionData[107];
4397 xx[130] = motionData[119];
4398 xx[131] = motionData[120];
4399 xx[132] = motionData[121];
4400 xx[133] = motionData[122];
4401 pm_math_quatCompose(xx + 121, xx + 130, xx + 134);
4402 xx[121] = xx[4] * (motionData[120] * motionData[122] - motionData[119] *
4403 motionData[121]);
4404 xx[122] = (motionData[119] * motionData[120] + motionData[121] * motionData
4405 [122]) * xx[4];
4406 xx[123] = xx[5] - (motionData[120] * motionData[120] + motionData[121] *
4407 motionData[121]) * xx[4];
4408 pm_math_cross3(xx + 121, xx + 118, xx + 124);
4409 pm_math_quatXform(xx + 134, xx + 124, xx + 118);
4410 xx[5] = xx[116] * motionData[124] - xx[2] * motionData[123];
4411 xx[115] = 9.27756931389703e-12;
4412 xx[121] = 5.443558296964576e-12;
4413 xx[122] = xx[115] * xx[2] + xx[121] * xx[116];
4414 xx[123] = xx[4] * xx[116] * xx[5] - (motionData[124] + xx[4] * xx[122] * xx
4415 [116]) + xx[121];
4416 xx[124] = motionData[106];
4417 xx[125] = motionData[107];
4418 xx[126] = motionData[108];
4419 xx[116] = motionData[123] + xx[4] * xx[2] * xx[5] - xx[4] * xx[122] * xx[2] +
4420 xx[115];
4421 xx[2] = xx[116] * motionData[108];
4422 xx[5] = xx[123] * motionData[108];
4423 xx[115] = xx[116] * motionData[106] - xx[123] * motionData[107];
4424 xx[130] = - xx[2];
4425 xx[131] = xx[5];
4426 xx[132] = xx[115];
4427 pm_math_cross3(xx + 124, xx + 130, xx + 133);
4428 xx[136] = motionData[273];
4429 xx[137] = motionData[274];
4430 xx[138] = motionData[275];
4431 xx[139] = motionData[276];
4432 xx[121] = xx[33] * state[60] - xx[34] * state[57];
4433 xx[122] = xx[33] * state[59] + xx[34] * state[58];
4434 xx[124] = - xx[122];
4435 xx[125] = xx[34] * state[59] - xx[33] * state[58];
4436 xx[126] = - xx[125];
4437 xx[130] = xx[33] * state[57] + xx[34] * state[60];
4438 xx[33] = - xx[130];
4439 xx[140] = xx[121];
4440 xx[141] = xx[124];
4441 xx[142] = xx[126];
4442 xx[143] = xx[33];
4443 pm_math_quatCompose(xx + 136, xx + 140, xx + 144);
4444 xx[34] = - 2.329268144978725e-13;
4445 xx[148] = xx[34];
4446 xx[149] = - xx[74];
4447 xx[150] = 0.0457500000000094;
4448 pm_math_quatXform(xx + 144, xx + 148, xx + 151);
4449 pm_math_quatXform(xx + 140, xx + 75, xx + 148);
4450 pm_math_quatXform(xx + 136, xx + 148, xx + 75);
4451 xx[148] = xx[74];
4452 xx[149] = xx[34];
4453 xx[150] = 5.855191459023036e-14;
4454 pm_math_quatXform(xx + 144, xx + 148, xx + 154);
4455 pm_math_quatXform(xx + 140, xx + 78, xx + 148);
4456 pm_math_quatXform(xx + 136, xx + 148, xx + 78);
4457 xx[34] = xx[63] * xx[147];
4458 xx[74] = xx[63] * xx[145] + xx[73] * xx[146];
4459 xx[140] = - xx[34];
4460 xx[141] = - (xx[73] * xx[147]);
4461 xx[142] = xx[74];
4462 pm_math_cross3(xx + 145, xx + 140, xx + 148);
4463 xx[140] = xx[124];
4464 xx[141] = xx[126];
4465 xx[142] = xx[33];
4466 xx[33] = xx[53] * xx[130];
4467 xx[124] = xx[64] * xx[130];
4468 xx[126] = xx[53] * xx[122] + xx[125] * xx[64];
4469 xx[130] = xx[33];
4470 xx[131] = xx[124];
4471 xx[132] = - xx[126];
4472 pm_math_cross3(xx + 140, xx + 130, xx + 157);
4473 xx[130] = xx[4] * (xx[157] + xx[33] * xx[121]) - xx[64];
4474 xx[131] = xx[53] + (xx[124] * xx[121] + xx[158]) * xx[4];
4475 xx[132] = (xx[159] - xx[126] * xx[121]) * xx[4];
4476 pm_math_quatXform(xx + 136, xx + 130, xx + 124);
4477 J[6] = xx[12] + motionData[327] + (xx[26] - xx[3] * xx[1]) * xx[4] + xx[4] *
4478 (xx[11] * xx[20] - xx[3] * xx[21]);
4479 J[7] = xx[29] + xx[35] + xx[4] * (xx[42] - xx[23] * motionData[14]);
4480 J[8] = xx[66] + xx[70];
4481 J[9] = xx[54] + xx[57];
4482 J[10] = xx[50] + xx[45];
4483 J[11] = xx[81] + xx[96];
4484 J[12] = xx[99] + xx[104];
4485 J[13] = xx[107] + xx[60];
4486 J[14] = xx[15] + xx[41] + xx[4] * (xx[87] - xx[18] * motionData[217]);
4487 J[16] = xx[4] * (xx[110] + xx[114] * xx[49]) + xx[38] - xx[8];
4488 J[25] = - (xx[92] + xx[4] * (xx[127] - xx[84] * xx[65]) - motionData[299] +
4489 xx[4] * (xx[103] * xx[91] - xx[113] * xx[65]));
4490 J[26] = - (xx[118] + xx[123] + xx[4] * (xx[133] - xx[2] * motionData[105]));
4491 J[27] = - (xx[151] + xx[75]);
4492 J[28] = - (xx[154] + xx[78]);
4493 J[29] = - (xx[4] * (xx[148] - xx[144] * xx[34]) + xx[124] - xx[73]);
4494 J[51] = xx[13] + (xx[27] - xx[3] * xx[10]) * xx[4] - (motionData[326] - (xx[21]
4495 * xx[7] + xx[20] * xx[9]) * xx[4]) - xx[19];
4496 J[52] = xx[30] + xx[25] + (xx[24] * motionData[14] + xx[43]) * xx[4];
4497 J[53] = xx[67] + xx[71];
4498 J[54] = xx[55] + xx[58];
4499 J[55] = xx[51] + xx[46];
4500 J[56] = xx[82] + xx[97];
4501 J[57] = xx[100] + xx[105];
4502 J[58] = xx[108] + xx[61];
4503 J[59] = xx[16] + xx[48] + (xx[36] * motionData[217] + xx[88]) * xx[4];
4504 J[61] = (xx[111] - xx[8] * xx[114] * xx[117]) * xx[4] + xx[39] - xx[6];
4505 J[70] = - (xx[93] + motionData[298] + xx[4] * (xx[128] - xx[86] * xx[65]) -
4506 (xx[85] * xx[113] + xx[90] * xx[103]) * xx[4] + xx[102]);
4507 J[71] = - (xx[119] + xx[116] + (xx[5] * motionData[105] + xx[134]) * xx[4]);
4508 J[72] = - (xx[152] + xx[76]);
4509 J[73] = - (xx[155] + xx[79]);
4510 J[74] = - ((xx[149] - xx[73] * xx[144] * xx[147]) * xx[4] + xx[125] + xx[63]);
4511 J[96] = xx[14] + xx[4] * (xx[28] - xx[22] * xx[3]) + (xx[3] * xx[20] + xx[11] *
4512 xx[21]) * xx[4];
4513 J[97] = xx[31] + (xx[32] * motionData[14] + xx[44]) * xx[4];
4514 J[98] = xx[68] + xx[72];
4515 J[99] = xx[56] + xx[59];
4516 J[100] = xx[52] + xx[47];
4517 J[101] = xx[83] + xx[98];
4518 J[102] = xx[101] + xx[106];
4519 J[103] = xx[109] + xx[62];
4520 J[104] = xx[17] + (xx[37] * motionData[217] + xx[89]) * xx[4];
4521 J[106] = (xx[114] * xx[69] + xx[112]) * xx[4] + xx[40];
4522 J[115] = - (xx[94] + (xx[95] * xx[65] + xx[129]) * xx[4] + (xx[103] * xx[65] +
4523 xx[113] * xx[91]) * xx[4]);
4524 J[116] = - (xx[120] + (xx[115] * motionData[105] + xx[135]) * xx[4]);
4525 J[117] = - (xx[153] + xx[77]);
4526 J[118] = - (xx[156] + xx[80]);
4527 J[119] = - ((xx[144] * xx[74] + xx[150]) * xx[4] + xx[126]);
4528 return 3;
4529}
4530
4531static size_t computeAssemblyJacobian_2(const double *rtdv, const double *state,
4532 const double *motionData, double *J)
4533{
4534 double xx[160];
4535 (void) rtdv;
4536 xx[0] = 0.0;
4537 xx[1] = 0.3895853754265615;
4538 xx[2] = 0.5;
4539 xx[3] = xx[2] * state[12];
4540 xx[4] = cos(xx[3]);
4541 xx[5] = 0.389581900177037;
4542 xx[6] = sin(xx[3]);
4543 xx[3] = xx[1] * xx[4] - xx[5] * xx[6];
4544 xx[7] = 0.5901074779979933;
4545 xx[8] = 0.5901036711621462;
4546 xx[9] = xx[7] * xx[4] + xx[8] * xx[6];
4547 xx[10] = - xx[9];
4548 xx[11] = xx[8] * xx[4] - xx[7] * xx[6];
4549 xx[7] = xx[5] * xx[4] + xx[1] * xx[6];
4550 xx[1] = - xx[7];
4551 xx[12] = xx[3];
4552 xx[13] = xx[10];
4553 xx[14] = xx[11];
4554 xx[15] = xx[1];
4555 xx[16] = motionData[378];
4556 xx[17] = motionData[379];
4557 xx[18] = motionData[380];
4558 xx[19] = motionData[381];
4559 pm_math_quatCompose(xx + 12, xx + 16, xx + 20);
4560 xx[4] = 2.0;
4561 xx[5] = 1.0;
4562 xx[12] = xx[4] * (motionData[378] * motionData[380] - motionData[379] *
4563 motionData[381]);
4564 xx[13] = - ((motionData[378] * motionData[379] + motionData[380] * motionData
4565 [381]) * xx[4]);
4566 xx[14] = (motionData[379] * motionData[379] + motionData[380] * motionData[380])
4567 * xx[4] - xx[5];
4568 xx[6] = 7.599121945184391e-12;
4569 xx[8] = 5.036130209737022e-12;
4570 xx[15] = 5.192027881355888e-12;
4571 xx[16] = - xx[6];
4572 xx[17] = xx[8];
4573 xx[18] = - xx[15];
4574 pm_math_cross3(xx + 12, xx + 16, xx + 24);
4575 pm_math_quatXform(xx + 20, xx + 24, xx + 12);
4576 xx[19] = xx[10];
4577 xx[20] = xx[11];
4578 xx[21] = xx[1];
4579 xx[1] = xx[7] * motionData[382];
4580 xx[10] = xx[7] * motionData[383];
4581 xx[22] = xx[11] * motionData[383] - xx[9] * motionData[382];
4582 xx[23] = - xx[1];
4583 xx[24] = - xx[10];
4584 xx[25] = - xx[22];
4585 pm_math_cross3(xx + 19, xx + 23, xx + 26);
4586 xx[19] = 0.02520954632904373;
4587 xx[20] = xx[19] * xx[9];
4588 xx[21] = xx[19] * xx[7];
4589 xx[23] = xx[2] * state[14];
4590 xx[24] = cos(xx[23]);
4591 xx[25] = sin(xx[23]);
4592 xx[29] = xx[24] * motionData[15] - xx[25] * motionData[16];
4593 xx[30] = - (xx[24] * motionData[14] + xx[25] * motionData[17]);
4594 xx[31] = xx[25] * motionData[14] - xx[24] * motionData[17];
4595 xx[32] = xx[25] * motionData[15] + xx[24] * motionData[16];
4596 xx[33] = motionData[371];
4597 xx[34] = motionData[372];
4598 xx[35] = motionData[373];
4599 xx[36] = motionData[374];
4600 pm_math_quatCompose(xx + 29, xx + 33, xx + 37);
4601 xx[29] = xx[4] * (motionData[372] * motionData[374] - motionData[371] *
4602 motionData[373]);
4603 xx[30] = (motionData[371] * motionData[372] + motionData[373] * motionData[374])
4604 * xx[4];
4605 xx[31] = xx[5] - (motionData[372] * motionData[372] + motionData[373] *
4606 motionData[373]) * xx[4];
4607 pm_math_cross3(xx + 29, xx + 16, xx + 32);
4608 pm_math_quatXform(xx + 37, xx + 32, xx + 29);
4609 xx[23] = xx[25] * motionData[376] - xx[24] * motionData[375];
4610 xx[32] = 7.748428954013064e-12;
4611 xx[33] = 5.376764528053357e-12;
4612 xx[34] = xx[32] * xx[24] - xx[33] * xx[25];
4613 xx[35] = xx[4] * xx[25] * xx[23] - (motionData[376] + xx[4] * xx[34] * xx[25])
4614 - xx[33];
4615 xx[36] = motionData[15];
4616 xx[37] = motionData[16];
4617 xx[38] = motionData[17];
4618 xx[25] = motionData[375] + xx[4] * xx[24] * xx[23] - xx[4] * xx[34] * xx[24] +
4619 xx[32];
4620 xx[23] = xx[25] * motionData[17];
4621 xx[24] = xx[35] * motionData[17];
4622 xx[32] = xx[25] * motionData[15] - xx[35] * motionData[16];
4623 xx[39] = - xx[23];
4624 xx[40] = xx[24];
4625 xx[41] = xx[32];
4626 pm_math_cross3(xx + 36, xx + 39, xx + 42);
4627 xx[36] = motionData[203];
4628 xx[37] = motionData[204];
4629 xx[38] = motionData[205];
4630 xx[39] = motionData[206];
4631 xx[33] = 3.980251324392935e-7;
4632 xx[34] = 0.999999999999921;
4633 xx[40] = xx[33] * state[19] - xx[34] * state[16];
4634 xx[41] = xx[33] * state[18] + xx[34] * state[17];
4635 xx[45] = - xx[41];
4636 xx[46] = xx[34] * state[18] - xx[33] * state[17];
4637 xx[47] = - xx[46];
4638 xx[48] = xx[33] * state[16] + xx[34] * state[19];
4639 xx[49] = - xx[48];
4640 xx[50] = xx[40];
4641 xx[51] = xx[45];
4642 xx[52] = xx[47];
4643 xx[53] = xx[49];
4644 pm_math_quatCompose(xx + 36, xx + 50, xx + 54);
4645 xx[58] = motionData[364];
4646 xx[59] = motionData[365];
4647 xx[60] = motionData[366];
4648 xx[61] = motionData[367];
4649 pm_math_quatCompose(xx + 54, xx + 58, xx + 62);
4650 xx[54] = motionData[365];
4651 xx[55] = motionData[366];
4652 xx[56] = motionData[367];
4653 xx[57] = 7.960502648785241e-7;
4654 xx[58] = xx[57] * motionData[367];
4655 xx[59] = xx[57] * motionData[365] + motionData[366];
4656 xx[66] = xx[58];
4657 xx[67] = motionData[367];
4658 xx[68] = - xx[59];
4659 pm_math_cross3(xx + 54, xx + 66, xx + 69);
4660 xx[60] = motionData[364] * motionData[367];
4661 xx[66] = xx[5] + (xx[69] - xx[58] * motionData[364]) * xx[4];
4662 xx[67] = xx[4] * (xx[70] - xx[60]) - xx[57];
4663 xx[68] = xx[4] * (xx[71] + xx[59] * motionData[364]);
4664 pm_math_cross3(xx + 66, xx + 16, xx + 69);
4665 pm_math_quatXform(xx + 62, xx + 69, xx + 66);
4666 xx[59] = - (xx[57] * motionData[370]);
4667 xx[69] = xx[59];
4668 xx[70] = - motionData[370];
4669 xx[71] = motionData[369] + xx[57] * motionData[368];
4670 pm_math_quatXform(xx + 50, xx + 69, xx + 72);
4671 xx[61] = 2.329280111075767e-13;
4672 xx[69] = 2.926046524751139e-7;
4673 xx[75] = xx[61];
4674 xx[76] = xx[69];
4675 xx[77] = 0.04575000000718987;
4676 pm_math_quatXform(xx + 50, xx + 75, xx + 78);
4677 xx[81] = xx[72] + xx[78];
4678 xx[82] = xx[73] + xx[79];
4679 xx[83] = xx[74] + xx[80];
4680 pm_math_quatXform(xx + 36, xx + 81, xx + 70);
4681 xx[73] = motionData[365] - xx[57] * motionData[366];
4682 xx[78] = - motionData[367];
4683 xx[79] = xx[58];
4684 xx[80] = xx[73];
4685 pm_math_cross3(xx + 54, xx + 78, xx + 81);
4686 xx[54] = xx[57] + (xx[60] + xx[81]) * xx[4];
4687 xx[55] = xx[5] + xx[4] * (xx[82] - xx[57] * xx[60]);
4688 xx[56] = xx[4] * (xx[83] - xx[73] * motionData[364]);
4689 pm_math_cross3(xx + 54, xx + 16, xx + 78);
4690 pm_math_quatXform(xx + 62, xx + 78, xx + 54);
4691 xx[78] = motionData[370];
4692 xx[79] = xx[59];
4693 xx[80] = xx[57] * motionData[369] - motionData[368];
4694 pm_math_quatXform(xx + 50, xx + 78, xx + 57);
4695 xx[78] = - xx[69];
4696 xx[79] = xx[61];
4697 xx[80] = 7.670997177269469e-12;
4698 pm_math_quatXform(xx + 50, xx + 78, xx + 81);
4699 xx[50] = xx[57] + xx[81];
4700 xx[51] = xx[58] + xx[82];
4701 xx[52] = xx[59] + xx[83];
4702 pm_math_quatXform(xx + 36, xx + 50, xx + 57);
4703 xx[50] = xx[4] * (motionData[365] * motionData[367] - motionData[364] *
4704 motionData[366]);
4705 xx[51] = (motionData[364] * motionData[365] + motionData[366] * motionData[367])
4706 * xx[4];
4707 xx[52] = xx[5] - (motionData[365] * motionData[365] + motionData[366] *
4708 motionData[366]) * xx[4];
4709 pm_math_cross3(xx + 50, xx + 16, xx + 81);
4710 pm_math_quatXform(xx + 62, xx + 81, xx + 50);
4711 xx[60] = xx[45];
4712 xx[61] = xx[47];
4713 xx[62] = xx[49];
4714 xx[45] = xx[48] * motionData[368];
4715 xx[47] = xx[48] * motionData[369];
4716 xx[49] = xx[41] * motionData[368] + xx[46] * motionData[369];
4717 xx[63] = xx[45];
4718 xx[64] = xx[47];
4719 xx[65] = - xx[49];
4720 pm_math_cross3(xx + 60, xx + 63, xx + 81);
4721 xx[53] = 3.641162862673871e-8;
4722 xx[63] = xx[53] * xx[48];
4723 xx[64] = 0.04575000000717538;
4724 xx[65] = xx[64] * xx[48];
4725 xx[48] = xx[53] * xx[41] + xx[46] * xx[64];
4726 xx[84] = xx[63];
4727 xx[85] = xx[65];
4728 xx[86] = - xx[48];
4729 pm_math_cross3(xx + 60, xx + 84, xx + 87);
4730 xx[60] = xx[4] * (xx[81] + xx[45] * xx[40]) + xx[4] * (xx[87] + xx[63] * xx[40])
4731 - motionData[369] - xx[64];
4732 xx[61] = motionData[368] + xx[4] * (xx[82] + xx[47] * xx[40]) + (xx[65] * xx
4733 [40] + xx[88]) * xx[4] + xx[53];
4734 xx[62] = (xx[83] - xx[40] * xx[49]) * xx[4] + (xx[89] - xx[48] * xx[40]) * xx
4735 [4];
4736 pm_math_quatXform(xx + 36, xx + 60, xx + 45);
4737 xx[36] = motionData[210];
4738 xx[37] = motionData[211];
4739 xx[38] = motionData[212];
4740 xx[39] = motionData[213];
4741 xx[40] = 3.980251340548381e-7;
4742 xx[41] = xx[34] * state[26] - xx[40] * state[23];
4743 xx[48] = xx[34] * state[25] - xx[40] * state[24];
4744 xx[49] = xx[40] * state[25] + xx[34] * state[24];
4745 xx[60] = - xx[49];
4746 xx[61] = xx[40] * state[26] + xx[34] * state[23];
4747 xx[40] = - xx[61];
4748 xx[81] = xx[41];
4749 xx[82] = xx[48];
4750 xx[83] = xx[60];
4751 xx[84] = xx[40];
4752 pm_math_quatCompose(xx + 36, xx + 81, xx + 85);
4753 xx[81] = motionData[357];
4754 xx[82] = motionData[358];
4755 xx[83] = motionData[359];
4756 xx[84] = motionData[360];
4757 pm_math_quatCompose(xx + 85, xx + 81, xx + 89);
4758 xx[62] = motionData[359] * motionData[359];
4759 xx[63] = motionData[360] * motionData[360];
4760 xx[65] = motionData[358] * motionData[359];
4761 xx[69] = motionData[357] * motionData[360];
4762 xx[73] = motionData[357] * motionData[359];
4763 xx[74] = motionData[358] * motionData[360];
4764 xx[81] = xx[5] - (xx[62] + xx[63]) * xx[4];
4765 xx[82] = xx[4] * (xx[65] - xx[69]);
4766 xx[83] = (xx[73] + xx[74]) * xx[4];
4767 pm_math_cross3(xx + 81, xx + 16, xx + 84);
4768 pm_math_quatXform(xx + 89, xx + 84, xx + 81);
4769 xx[84] = xx[48];
4770 xx[85] = xx[60];
4771 xx[86] = xx[40];
4772 xx[40] = xx[49] * motionData[362];
4773 xx[60] = xx[61] * motionData[363];
4774 xx[87] = xx[40] + xx[60];
4775 xx[88] = xx[48] * motionData[362];
4776 xx[93] = xx[48] * motionData[363];
4777 xx[94] = - xx[87];
4778 xx[95] = - xx[88];
4779 xx[96] = - xx[93];
4780 pm_math_cross3(xx + 84, xx + 94, xx + 97);
4781 xx[94] = xx[49] * xx[8];
4782 xx[95] = xx[61] * xx[15];
4783 xx[96] = xx[94] - xx[95];
4784 xx[100] = xx[8] * xx[48];
4785 xx[101] = xx[15] * xx[48];
4786 xx[102] = xx[96];
4787 xx[103] = xx[100];
4788 xx[104] = - xx[101];
4789 pm_math_cross3(xx + 84, xx + 102, xx + 105);
4790 xx[102] = xx[4] * (xx[97] - xx[87] * xx[41]) + (xx[41] * xx[96] + xx[105]) *
4791 xx[4];
4792 xx[103] = xx[4] * (xx[98] - xx[88] * xx[41]) + xx[4] * (xx[106] + xx[100] *
4793 xx[41]) - motionData[363] - xx[15];
4794 xx[104] = motionData[362] + xx[4] * (xx[99] - xx[93] * xx[41]) + (xx[107] -
4795 xx[101] * xx[41]) * xx[4] - xx[8];
4796 pm_math_quatXform(xx + 36, xx + 102, xx + 96);
4797 xx[87] = motionData[358] * motionData[358];
4798 xx[88] = motionData[359] * motionData[360];
4799 xx[93] = motionData[357] * motionData[358];
4800 xx[99] = (xx[69] + xx[65]) * xx[4];
4801 xx[100] = xx[5] - (xx[63] + xx[87]) * xx[4];
4802 xx[101] = xx[4] * (xx[88] - xx[93]);
4803 pm_math_cross3(xx + 99, xx + 16, xx + 102);
4804 pm_math_quatXform(xx + 89, xx + 102, xx + 99);
4805 xx[63] = xx[49] * motionData[361];
4806 xx[65] = xx[48] * motionData[361];
4807 xx[69] = xx[65] - xx[60];
4808 xx[60] = xx[49] * motionData[363];
4809 xx[102] = xx[63];
4810 xx[103] = xx[69];
4811 xx[104] = xx[60];
4812 pm_math_cross3(xx + 84, xx + 102, xx + 105);
4813 xx[102] = xx[49] * xx[6];
4814 xx[103] = xx[6] * xx[48];
4815 xx[48] = xx[95] - xx[103];
4816 xx[95] = xx[49] * xx[15];
4817 xx[108] = xx[102];
4818 xx[109] = - xx[48];
4819 xx[110] = xx[95];
4820 pm_math_cross3(xx + 84, xx + 108, xx + 111);
4821 xx[108] = motionData[363] + (xx[63] * xx[41] + xx[105]) * xx[4] + xx[4] * (xx
4822 [111] + xx[102] * xx[41]) + xx[15];
4823 xx[109] = (xx[41] * xx[69] + xx[106]) * xx[4] + xx[4] * (xx[112] - xx[48] *
4824 xx[41]);
4825 xx[110] = (xx[60] * xx[41] + xx[107]) * xx[4] + (xx[95] * xx[41] + xx[113]) *
4826 xx[4] - motionData[361] - xx[6];
4827 pm_math_quatXform(xx + 36, xx + 108, xx + 104);
4828 xx[107] = xx[4] * (xx[74] - xx[73]);
4829 xx[108] = (xx[93] + xx[88]) * xx[4];
4830 xx[109] = xx[5] - (xx[87] + xx[62]) * xx[4];
4831 pm_math_cross3(xx + 107, xx + 16, xx + 110);
4832 pm_math_quatXform(xx + 89, xx + 110, xx + 107);
4833 xx[15] = xx[61] * motionData[361];
4834 xx[48] = xx[61] * motionData[362];
4835 xx[49] = xx[65] - xx[40];
4836 xx[87] = xx[15];
4837 xx[88] = xx[48];
4838 xx[89] = xx[49];
4839 pm_math_cross3(xx + 84, xx + 87, xx + 90);
4840 xx[40] = xx[61] * xx[6];
4841 xx[60] = xx[61] * xx[8];
4842 xx[61] = xx[103] + xx[94];
4843 xx[87] = xx[40];
4844 xx[88] = - xx[60];
4845 xx[89] = xx[61];
4846 pm_math_cross3(xx + 84, xx + 87, xx + 93);
4847 xx[84] = (xx[15] * xx[41] + xx[90]) * xx[4] + (xx[40] * xx[41] + xx[93]) * xx
4848 [4] - motionData[362] + xx[8];
4849 xx[85] = motionData[361] + (xx[48] * xx[41] + xx[91]) * xx[4] + xx[4] * (xx[94]
4850 - xx[60] * xx[41]) + xx[6];
4851 xx[86] = (xx[41] * xx[49] + xx[92]) * xx[4] + (xx[61] * xx[41] + xx[95]) * xx
4852 [4];
4853 pm_math_quatXform(xx + 36, xx + 84, xx + 60);
4854 xx[15] = xx[2] * state[30];
4855 xx[36] = cos(xx[15]);
4856 xx[37] = sin(xx[15]);
4857 xx[38] = xx[36] * motionData[217] - xx[37] * motionData[220];
4858 xx[39] = xx[36] * motionData[218] + xx[37] * motionData[219];
4859 xx[40] = xx[36] * motionData[219] - xx[37] * motionData[218];
4860 xx[41] = xx[37] * motionData[217] + xx[36] * motionData[220];
4861 xx[84] = motionData[63];
4862 xx[85] = motionData[64];
4863 xx[86] = motionData[65];
4864 xx[87] = motionData[66];
4865 pm_math_quatCompose(xx + 38, xx + 84, xx + 88);
4866 xx[38] = xx[4] * (motionData[64] * motionData[66] - motionData[63] *
4867 motionData[65]);
4868 xx[39] = (motionData[63] * motionData[64] + motionData[65] * motionData[66]) *
4869 xx[4];
4870 xx[40] = xx[5] - (motionData[64] * motionData[64] + motionData[65] *
4871 motionData[65]) * xx[4];
4872 pm_math_cross3(xx + 38, xx + 16, xx + 84);
4873 pm_math_quatXform(xx + 88, xx + 84, xx + 15);
4874 xx[18] = xx[37] * motionData[68];
4875 xx[38] = xx[37] * motionData[67];
4876 xx[39] = 0.02540000000000185;
4877 xx[40] = xx[39] * xx[37];
4878 xx[41] = xx[4] * (xx[18] * xx[37] - xx[36] * xx[38]) - motionData[68] + xx[4] *
4879 xx[36] * xx[40];
4880 xx[84] = motionData[218];
4881 xx[85] = motionData[219];
4882 xx[86] = motionData[220];
4883 xx[48] = motionData[67] - ((xx[36] * xx[18] + xx[38] * xx[37]) * xx[4] - xx[4]
4884 * xx[40] * xx[37]) - xx[39];
4885 xx[18] = xx[48] * motionData[220];
4886 xx[36] = xx[41] * motionData[220];
4887 xx[37] = xx[48] * motionData[218] - xx[41] * motionData[219];
4888 xx[38] = - xx[18];
4889 xx[39] = xx[36];
4890 xx[40] = xx[37];
4891 pm_math_cross3(xx + 84, xx + 38, xx + 87);
4892 xx[90] = motionData[224];
4893 xx[91] = motionData[225];
4894 xx[92] = motionData[226];
4895 xx[93] = motionData[227];
4896 xx[38] = 0.3535533905932758;
4897 xx[39] = xx[2] * state[36];
4898 xx[40] = cos(xx[39]);
4899 xx[49] = xx[38] * xx[40];
4900 xx[63] = sin(xx[39]);
4901 xx[39] = xx[38] * xx[63];
4902 xx[38] = xx[49] + xx[39];
4903 xx[65] = 0.6123724356957934;
4904 xx[69] = xx[65] * xx[63];
4905 xx[63] = xx[65] * xx[40];
4906 xx[40] = xx[69] - xx[63];
4907 xx[65] = xx[63] + xx[69];
4908 xx[63] = - xx[65];
4909 xx[69] = xx[39] - xx[49];
4910 xx[110] = - xx[38];
4911 xx[111] = xx[40];
4912 xx[112] = xx[63];
4913 xx[113] = xx[69];
4914 pm_math_quatCompose(xx + 90, xx + 110, xx + 114);
4915 xx[39] = xx[6] * xx[117];
4916 xx[49] = xx[6] * xx[115] - xx[8] * xx[116];
4917 xx[84] = - xx[39];
4918 xx[85] = xx[8] * xx[117];
4919 xx[86] = xx[49];
4920 pm_math_cross3(xx + 115, xx + 84, xx + 110);
4921 xx[73] = 3.80025733104361e-12;
4922 xx[84] = xx[40];
4923 xx[85] = xx[63];
4924 xx[86] = xx[69];
4925 xx[63] = 3.881762117297072e-12;
4926 xx[74] = xx[63] * xx[69];
4927 xx[94] = xx[73] * xx[69];
4928 xx[69] = xx[63] * xx[40] + xx[65] * xx[73];
4929 xx[118] = - xx[74];
4930 xx[119] = xx[94];
4931 xx[120] = xx[69];
4932 pm_math_cross3(xx + 84, xx + 118, xx + 121);
4933 xx[84] = xx[73] + xx[4] * (xx[121] + xx[38] * xx[74]);
4934 xx[85] = xx[63] + (xx[122] - xx[38] * xx[94]) * xx[4];
4935 xx[86] = (xx[123] - xx[38] * xx[69]) * xx[4];
4936 pm_math_quatXform(xx + 90, xx + 84, xx + 118);
4937 xx[38] = 0.3162553791961485;
4938 xx[40] = xx[2] * state[75];
4939 xx[63] = cos(xx[40]);
4940 xx[65] = 0.3162538200043588;
4941 xx[69] = sin(xx[40]);
4942 xx[40] = xx[38] * xx[63] - xx[65] * xx[69];
4943 xx[73] = 0.6324445710612965;
4944 xx[74] = 0.6324396579890005;
4945 xx[84] = xx[73] * xx[63] + xx[74] * xx[69];
4946 xx[85] = xx[73] * xx[69] - xx[74] * xx[63];
4947 xx[73] = xx[65] * xx[63] + xx[38] * xx[69];
4948 xx[38] = - xx[73];
4949 xx[90] = xx[40];
4950 xx[91] = xx[84];
4951 xx[92] = xx[85];
4952 xx[93] = xx[38];
4953 xx[121] = motionData[350];
4954 xx[122] = motionData[351];
4955 xx[123] = motionData[352];
4956 xx[124] = motionData[353];
4957 pm_math_quatCompose(xx + 90, xx + 121, xx + 125);
4958 xx[90] = xx[4] * (motionData[350] * motionData[352] - motionData[351] *
4959 motionData[353]);
4960 xx[91] = - ((motionData[350] * motionData[351] + motionData[352] * motionData
4961 [353]) * xx[4]);
4962 xx[92] = (motionData[351] * motionData[351] + motionData[352] * motionData[352])
4963 * xx[4] - xx[5];
4964 xx[63] = 3.641924106626229e-8;
4965 xx[65] = 0.04574999999998041;
4966 xx[69] = 2.92603149291605e-7;
4967 xx[93] = xx[63];
4968 xx[94] = xx[65];
4969 xx[95] = xx[69];
4970 pm_math_cross3(xx + 90, xx + 93, xx + 121);
4971 pm_math_quatXform(xx + 125, xx + 121, xx + 90);
4972 xx[121] = xx[84];
4973 xx[122] = xx[85];
4974 xx[123] = xx[38];
4975 xx[38] = xx[73] * motionData[354];
4976 xx[74] = xx[73] * motionData[355];
4977 xx[86] = xx[84] * motionData[354] + xx[85] * motionData[355];
4978 xx[124] = - xx[38];
4979 xx[125] = - xx[74];
4980 xx[126] = - xx[86];
4981 pm_math_cross3(xx + 121, xx + 124, xx + 127);
4982 xx[102] = xx[19] * xx[84];
4983 xx[103] = xx[19] * xx[73];
4984 xx[113] = xx[2] * state[77];
4985 xx[2] = cos(xx[113]);
4986 xx[115] = sin(xx[113]);
4987 xx[121] = xx[2] * motionData[148] - xx[115] * motionData[149];
4988 xx[122] = - (xx[2] * motionData[147] + xx[115] * motionData[150]);
4989 xx[123] = xx[115] * motionData[147] - xx[2] * motionData[150];
4990 xx[124] = xx[115] * motionData[148] + xx[2] * motionData[149];
4991 xx[130] = motionData[161];
4992 xx[131] = motionData[162];
4993 xx[132] = motionData[163];
4994 xx[133] = motionData[164];
4995 pm_math_quatCompose(xx + 121, xx + 130, xx + 134);
4996 xx[121] = xx[4] * (motionData[162] * motionData[164] - motionData[161] *
4997 motionData[163]);
4998 xx[122] = (motionData[161] * motionData[162] + motionData[163] * motionData
4999 [164]) * xx[4];
5000 xx[123] = xx[5] - (motionData[162] * motionData[162] + motionData[163] *
5001 motionData[163]) * xx[4];
5002 pm_math_cross3(xx + 121, xx + 93, xx + 124);
5003 pm_math_quatXform(xx + 134, xx + 124, xx + 93);
5004 xx[5] = xx[115] * motionData[166] - xx[2] * motionData[165];
5005 xx[113] = 5.157931604049537e-12;
5006 xx[116] = 9.862118968695376e-13;
5007 xx[121] = xx[113] * xx[2] + xx[116] * xx[115];
5008 xx[122] = xx[4] * xx[115] * xx[5] - (motionData[166] - xx[4] * xx[121] * xx
5009 [115]) - xx[116];
5010 xx[123] = motionData[148];
5011 xx[124] = motionData[149];
5012 xx[125] = motionData[150];
5013 xx[115] = motionData[165] + xx[4] * xx[2] * xx[5] + xx[4] * xx[121] * xx[2] -
5014 xx[113];
5015 xx[2] = xx[115] * motionData[150];
5016 xx[5] = xx[122] * motionData[150];
5017 xx[113] = xx[115] * motionData[148] - xx[122] * motionData[149];
5018 xx[130] = - xx[2];
5019 xx[131] = xx[5];
5020 xx[132] = xx[113];
5021 pm_math_cross3(xx + 123, xx + 130, xx + 133);
5022 xx[123] = motionData[329];
5023 xx[124] = motionData[330];
5024 xx[125] = motionData[331];
5025 xx[126] = motionData[332];
5026 xx[116] = xx[33] * state[82] - xx[34] * state[79];
5027 xx[121] = xx[33] * state[81] + xx[34] * state[80];
5028 xx[130] = - xx[121];
5029 xx[131] = xx[34] * state[81] - xx[33] * state[80];
5030 xx[132] = - xx[131];
5031 xx[136] = xx[33] * state[79] + xx[34] * state[82];
5032 xx[33] = - xx[136];
5033 xx[137] = xx[116];
5034 xx[138] = xx[130];
5035 xx[139] = xx[132];
5036 xx[140] = xx[33];
5037 pm_math_quatCompose(xx + 123, xx + 137, xx + 141);
5038 xx[34] = - 2.329268144978725e-13;
5039 xx[145] = xx[34];
5040 xx[146] = - xx[69];
5041 xx[147] = 0.0457500000000094;
5042 pm_math_quatXform(xx + 141, xx + 145, xx + 148);
5043 pm_math_quatXform(xx + 137, xx + 75, xx + 145);
5044 pm_math_quatXform(xx + 123, xx + 145, xx + 75);
5045 xx[145] = xx[69];
5046 xx[146] = xx[34];
5047 xx[147] = 5.855191459023036e-14;
5048 pm_math_quatXform(xx + 141, xx + 145, xx + 151);
5049 pm_math_quatXform(xx + 137, xx + 78, xx + 145);
5050 pm_math_quatXform(xx + 123, xx + 145, xx + 78);
5051 xx[34] = xx[63] * xx[144];
5052 xx[69] = xx[63] * xx[142] + xx[65] * xx[143];
5053 xx[137] = - xx[34];
5054 xx[138] = - (xx[65] * xx[144]);
5055 xx[139] = xx[69];
5056 pm_math_cross3(xx + 142, xx + 137, xx + 145);
5057 xx[137] = xx[130];
5058 xx[138] = xx[132];
5059 xx[139] = xx[33];
5060 xx[33] = xx[53] * xx[136];
5061 xx[130] = xx[64] * xx[136];
5062 xx[132] = xx[53] * xx[121] + xx[131] * xx[64];
5063 xx[154] = xx[33];
5064 xx[155] = xx[130];
5065 xx[156] = - xx[132];
5066 pm_math_cross3(xx + 137, xx + 154, xx + 157);
5067 xx[136] = xx[4] * (xx[157] + xx[33] * xx[116]) - xx[64];
5068 xx[137] = xx[53] + (xx[130] * xx[116] + xx[158]) * xx[4];
5069 xx[138] = (xx[159] - xx[132] * xx[116]) * xx[4];
5070 pm_math_quatXform(xx + 123, xx + 136, xx + 130);
5071 J[6] = xx[12] + motionData[383] + (xx[26] - xx[3] * xx[1]) * xx[4] + xx[4] *
5072 (xx[11] * xx[20] - xx[3] * xx[21]);
5073 J[7] = xx[29] + xx[35] + xx[4] * (xx[42] - xx[23] * motionData[14]);
5074 J[8] = xx[66] + xx[70];
5075 J[9] = xx[54] + xx[57];
5076 J[10] = xx[50] + xx[45];
5077 J[11] = xx[81] + xx[96];
5078 J[12] = xx[99] + xx[104];
5079 J[13] = xx[107] + xx[60];
5080 J[14] = xx[15] + xx[41] + xx[4] * (xx[87] - xx[18] * motionData[217]);
5081 J[17] = xx[4] * (xx[110] - xx[114] * xx[39]) + xx[118] + xx[8];
5082 J[35] = - (xx[90] + motionData[355] + (xx[127] - xx[40] * xx[38]) * xx[4] -
5083 xx[4] * (xx[85] * xx[102] + xx[40] * xx[103]));
5084 J[36] = - (xx[93] + xx[122] + xx[4] * (xx[133] - xx[2] * motionData[147]));
5085 J[37] = - (xx[148] + xx[75]);
5086 J[38] = - (xx[151] + xx[78]);
5087 J[39] = - (xx[4] * (xx[145] - xx[141] * xx[34]) + xx[130] - xx[65]);
5088 J[51] = xx[13] + (xx[27] - xx[3] * xx[10]) * xx[4] - (motionData[382] - (xx[21]
5089 * xx[7] + xx[20] * xx[9]) * xx[4]) - xx[19];
5090 J[52] = xx[30] + xx[25] + (xx[24] * motionData[14] + xx[43]) * xx[4];
5091 J[53] = xx[67] + xx[71];
5092 J[54] = xx[55] + xx[58];
5093 J[55] = xx[51] + xx[46];
5094 J[56] = xx[82] + xx[97];
5095 J[57] = xx[100] + xx[105];
5096 J[58] = xx[108] + xx[61];
5097 J[59] = xx[16] + xx[48] + (xx[36] * motionData[217] + xx[88]) * xx[4];
5098 J[62] = (xx[8] * xx[114] * xx[117] + xx[111]) * xx[4] + xx[119] + xx[6];
5099 J[80] = - (xx[91] + (xx[128] - xx[40] * xx[74]) * xx[4] - (motionData[354] -
5100 (xx[103] * xx[73] + xx[102] * xx[84]) * xx[4]) - xx[19]);
5101 J[81] = - (xx[94] + xx[115] + (xx[5] * motionData[147] + xx[134]) * xx[4]);
5102 J[82] = - (xx[149] + xx[76]);
5103 J[83] = - (xx[152] + xx[79]);
5104 J[84] = - ((xx[146] - xx[65] * xx[141] * xx[144]) * xx[4] + xx[131] + xx[63]);
5105 J[96] = xx[14] + xx[4] * (xx[28] - xx[3] * xx[22]) + (xx[3] * xx[20] + xx[11] *
5106 xx[21]) * xx[4];
5107 J[97] = xx[31] + (xx[32] * motionData[14] + xx[44]) * xx[4];
5108 J[98] = xx[68] + xx[72];
5109 J[99] = xx[56] + xx[59];
5110 J[100] = xx[52] + xx[47];
5111 J[101] = xx[83] + xx[98];
5112 J[102] = xx[101] + xx[106];
5113 J[103] = xx[109] + xx[62];
5114 J[104] = xx[17] + (xx[37] * motionData[217] + xx[89]) * xx[4];
5115 J[107] = (xx[114] * xx[49] + xx[112]) * xx[4] + xx[120];
5116 J[125] = - (xx[92] + xx[4] * (xx[129] - xx[86] * xx[40]) + (xx[85] * xx[103] -
5117 xx[40] * xx[102]) * xx[4]);
5118 J[126] = - (xx[95] + (xx[113] * motionData[147] + xx[135]) * xx[4]);
5119 J[127] = - (xx[150] + xx[77]);
5120 J[128] = - (xx[153] + xx[80]);
5121 J[129] = - ((xx[141] * xx[69] + xx[147]) * xx[4] + xx[132]);
5122 return 3;
5123}
5124
5125static size_t computeAssemblyJacobian_3(const double *rtdv, const double *state,
5126 const double *motionData, double *J)
5127{
5128 double xx[160];
5129 (void) rtdv;
5130 xx[0] = 0.0;
5131 xx[1] = 0.3895853754265615;
5132 xx[2] = 0.5;
5133 xx[3] = xx[2] * state[12];
5134 xx[4] = cos(xx[3]);
5135 xx[5] = 0.389581900177037;
5136 xx[6] = sin(xx[3]);
5137 xx[3] = xx[1] * xx[4] - xx[5] * xx[6];
5138 xx[7] = 0.5901074779979933;
5139 xx[8] = 0.5901036711621462;
5140 xx[9] = xx[7] * xx[4] + xx[8] * xx[6];
5141 xx[10] = - xx[9];
5142 xx[11] = xx[8] * xx[4] - xx[7] * xx[6];
5143 xx[7] = xx[5] * xx[4] + xx[1] * xx[6];
5144 xx[1] = - xx[7];
5145 xx[12] = xx[3];
5146 xx[13] = xx[10];
5147 xx[14] = xx[11];
5148 xx[15] = xx[1];
5149 xx[16] = motionData[434];
5150 xx[17] = motionData[435];
5151 xx[18] = motionData[436];
5152 xx[19] = motionData[437];
5153 pm_math_quatCompose(xx + 12, xx + 16, xx + 20);
5154 xx[4] = 2.0;
5155 xx[5] = 1.0;
5156 xx[12] = xx[4] * (motionData[434] * motionData[436] - motionData[435] *
5157 motionData[437]);
5158 xx[13] = - ((motionData[434] * motionData[435] + motionData[436] * motionData
5159 [437]) * xx[4]);
5160 xx[14] = (motionData[435] * motionData[435] + motionData[436] * motionData[436])
5161 * xx[4] - xx[5];
5162 xx[6] = 7.599121945184391e-12;
5163 xx[8] = 5.036130209737022e-12;
5164 xx[15] = 5.192027881355888e-12;
5165 xx[16] = - xx[6];
5166 xx[17] = xx[8];
5167 xx[18] = - xx[15];
5168 pm_math_cross3(xx + 12, xx + 16, xx + 24);
5169 pm_math_quatXform(xx + 20, xx + 24, xx + 12);
5170 xx[19] = xx[10];
5171 xx[20] = xx[11];
5172 xx[21] = xx[1];
5173 xx[1] = xx[7] * motionData[438];
5174 xx[10] = xx[7] * motionData[439];
5175 xx[22] = xx[11] * motionData[439] - xx[9] * motionData[438];
5176 xx[23] = - xx[1];
5177 xx[24] = - xx[10];
5178 xx[25] = - xx[22];
5179 pm_math_cross3(xx + 19, xx + 23, xx + 26);
5180 xx[19] = 0.02520954632904373;
5181 xx[20] = xx[19] * xx[9];
5182 xx[21] = xx[19] * xx[7];
5183 xx[23] = xx[2] * state[14];
5184 xx[24] = cos(xx[23]);
5185 xx[25] = sin(xx[23]);
5186 xx[29] = xx[24] * motionData[15] - xx[25] * motionData[16];
5187 xx[30] = - (xx[24] * motionData[14] + xx[25] * motionData[17]);
5188 xx[31] = xx[25] * motionData[14] - xx[24] * motionData[17];
5189 xx[32] = xx[25] * motionData[15] + xx[24] * motionData[16];
5190 xx[33] = motionData[427];
5191 xx[34] = motionData[428];
5192 xx[35] = motionData[429];
5193 xx[36] = motionData[430];
5194 pm_math_quatCompose(xx + 29, xx + 33, xx + 37);
5195 xx[29] = xx[4] * (motionData[428] * motionData[430] - motionData[427] *
5196 motionData[429]);
5197 xx[30] = (motionData[427] * motionData[428] + motionData[429] * motionData[430])
5198 * xx[4];
5199 xx[31] = xx[5] - (motionData[428] * motionData[428] + motionData[429] *
5200 motionData[429]) * xx[4];
5201 pm_math_cross3(xx + 29, xx + 16, xx + 32);
5202 pm_math_quatXform(xx + 37, xx + 32, xx + 29);
5203 xx[23] = xx[25] * motionData[432] - xx[24] * motionData[431];
5204 xx[32] = 7.748428954013064e-12;
5205 xx[33] = 5.376764528053357e-12;
5206 xx[34] = xx[32] * xx[24] - xx[33] * xx[25];
5207 xx[35] = xx[4] * xx[25] * xx[23] - (motionData[432] + xx[4] * xx[34] * xx[25])
5208 - xx[33];
5209 xx[36] = motionData[15];
5210 xx[37] = motionData[16];
5211 xx[38] = motionData[17];
5212 xx[25] = motionData[431] + xx[4] * xx[24] * xx[23] - xx[4] * xx[34] * xx[24] +
5213 xx[32];
5214 xx[23] = xx[25] * motionData[17];
5215 xx[24] = xx[35] * motionData[17];
5216 xx[32] = xx[25] * motionData[15] - xx[35] * motionData[16];
5217 xx[39] = - xx[23];
5218 xx[40] = xx[24];
5219 xx[41] = xx[32];
5220 pm_math_cross3(xx + 36, xx + 39, xx + 42);
5221 xx[36] = motionData[203];
5222 xx[37] = motionData[204];
5223 xx[38] = motionData[205];
5224 xx[39] = motionData[206];
5225 xx[33] = 3.980251324392935e-7;
5226 xx[34] = 0.999999999999921;
5227 xx[40] = xx[33] * state[19] - xx[34] * state[16];
5228 xx[41] = xx[33] * state[18] + xx[34] * state[17];
5229 xx[45] = - xx[41];
5230 xx[46] = xx[34] * state[18] - xx[33] * state[17];
5231 xx[47] = - xx[46];
5232 xx[48] = xx[33] * state[16] + xx[34] * state[19];
5233 xx[49] = - xx[48];
5234 xx[50] = xx[40];
5235 xx[51] = xx[45];
5236 xx[52] = xx[47];
5237 xx[53] = xx[49];
5238 pm_math_quatCompose(xx + 36, xx + 50, xx + 54);
5239 xx[58] = motionData[420];
5240 xx[59] = motionData[421];
5241 xx[60] = motionData[422];
5242 xx[61] = motionData[423];
5243 pm_math_quatCompose(xx + 54, xx + 58, xx + 62);
5244 xx[54] = motionData[421];
5245 xx[55] = motionData[422];
5246 xx[56] = motionData[423];
5247 xx[57] = 7.960502648785241e-7;
5248 xx[58] = xx[57] * motionData[423];
5249 xx[59] = xx[57] * motionData[421] + motionData[422];
5250 xx[66] = xx[58];
5251 xx[67] = motionData[423];
5252 xx[68] = - xx[59];
5253 pm_math_cross3(xx + 54, xx + 66, xx + 69);
5254 xx[60] = motionData[420] * motionData[423];
5255 xx[66] = xx[5] + (xx[69] - xx[58] * motionData[420]) * xx[4];
5256 xx[67] = xx[4] * (xx[70] - xx[60]) - xx[57];
5257 xx[68] = xx[4] * (xx[71] + xx[59] * motionData[420]);
5258 pm_math_cross3(xx + 66, xx + 16, xx + 69);
5259 pm_math_quatXform(xx + 62, xx + 69, xx + 66);
5260 xx[59] = - (xx[57] * motionData[426]);
5261 xx[69] = xx[59];
5262 xx[70] = - motionData[426];
5263 xx[71] = motionData[425] + xx[57] * motionData[424];
5264 pm_math_quatXform(xx + 50, xx + 69, xx + 72);
5265 xx[61] = 2.329280111075767e-13;
5266 xx[69] = 2.926046524751139e-7;
5267 xx[75] = xx[61];
5268 xx[76] = xx[69];
5269 xx[77] = 0.04575000000718987;
5270 pm_math_quatXform(xx + 50, xx + 75, xx + 78);
5271 xx[81] = xx[72] + xx[78];
5272 xx[82] = xx[73] + xx[79];
5273 xx[83] = xx[74] + xx[80];
5274 pm_math_quatXform(xx + 36, xx + 81, xx + 70);
5275 xx[73] = motionData[421] - xx[57] * motionData[422];
5276 xx[78] = - motionData[423];
5277 xx[79] = xx[58];
5278 xx[80] = xx[73];
5279 pm_math_cross3(xx + 54, xx + 78, xx + 81);
5280 xx[54] = xx[57] + (xx[60] + xx[81]) * xx[4];
5281 xx[55] = xx[5] + xx[4] * (xx[82] - xx[57] * xx[60]);
5282 xx[56] = xx[4] * (xx[83] - xx[73] * motionData[420]);
5283 pm_math_cross3(xx + 54, xx + 16, xx + 78);
5284 pm_math_quatXform(xx + 62, xx + 78, xx + 54);
5285 xx[78] = motionData[426];
5286 xx[79] = xx[59];
5287 xx[80] = xx[57] * motionData[425] - motionData[424];
5288 pm_math_quatXform(xx + 50, xx + 78, xx + 57);
5289 xx[78] = - xx[69];
5290 xx[79] = xx[61];
5291 xx[80] = 7.670997177269469e-12;
5292 pm_math_quatXform(xx + 50, xx + 78, xx + 81);
5293 xx[50] = xx[57] + xx[81];
5294 xx[51] = xx[58] + xx[82];
5295 xx[52] = xx[59] + xx[83];
5296 pm_math_quatXform(xx + 36, xx + 50, xx + 57);
5297 xx[50] = xx[4] * (motionData[421] * motionData[423] - motionData[420] *
5298 motionData[422]);
5299 xx[51] = (motionData[420] * motionData[421] + motionData[422] * motionData[423])
5300 * xx[4];
5301 xx[52] = xx[5] - (motionData[421] * motionData[421] + motionData[422] *
5302 motionData[422]) * xx[4];
5303 pm_math_cross3(xx + 50, xx + 16, xx + 81);
5304 pm_math_quatXform(xx + 62, xx + 81, xx + 50);
5305 xx[60] = xx[45];
5306 xx[61] = xx[47];
5307 xx[62] = xx[49];
5308 xx[45] = xx[48] * motionData[424];
5309 xx[47] = xx[48] * motionData[425];
5310 xx[49] = xx[41] * motionData[424] + xx[46] * motionData[425];
5311 xx[63] = xx[45];
5312 xx[64] = xx[47];
5313 xx[65] = - xx[49];
5314 pm_math_cross3(xx + 60, xx + 63, xx + 81);
5315 xx[53] = 3.641162862673871e-8;
5316 xx[63] = xx[53] * xx[48];
5317 xx[64] = 0.04575000000717538;
5318 xx[65] = xx[64] * xx[48];
5319 xx[48] = xx[53] * xx[41] + xx[46] * xx[64];
5320 xx[84] = xx[63];
5321 xx[85] = xx[65];
5322 xx[86] = - xx[48];
5323 pm_math_cross3(xx + 60, xx + 84, xx + 87);
5324 xx[60] = xx[4] * (xx[81] + xx[45] * xx[40]) + xx[4] * (xx[87] + xx[63] * xx[40])
5325 - motionData[425] - xx[64];
5326 xx[61] = motionData[424] + xx[4] * (xx[82] + xx[47] * xx[40]) + (xx[65] * xx
5327 [40] + xx[88]) * xx[4] + xx[53];
5328 xx[62] = (xx[83] - xx[40] * xx[49]) * xx[4] + (xx[89] - xx[48] * xx[40]) * xx
5329 [4];
5330 pm_math_quatXform(xx + 36, xx + 60, xx + 45);
5331 xx[36] = motionData[210];
5332 xx[37] = motionData[211];
5333 xx[38] = motionData[212];
5334 xx[39] = motionData[213];
5335 xx[40] = 3.980251340548381e-7;
5336 xx[41] = xx[34] * state[26] - xx[40] * state[23];
5337 xx[48] = xx[34] * state[25] - xx[40] * state[24];
5338 xx[49] = xx[40] * state[25] + xx[34] * state[24];
5339 xx[60] = - xx[49];
5340 xx[61] = xx[40] * state[26] + xx[34] * state[23];
5341 xx[40] = - xx[61];
5342 xx[81] = xx[41];
5343 xx[82] = xx[48];
5344 xx[83] = xx[60];
5345 xx[84] = xx[40];
5346 pm_math_quatCompose(xx + 36, xx + 81, xx + 85);
5347 xx[81] = motionData[413];
5348 xx[82] = motionData[414];
5349 xx[83] = motionData[415];
5350 xx[84] = motionData[416];
5351 pm_math_quatCompose(xx + 85, xx + 81, xx + 89);
5352 xx[62] = motionData[415] * motionData[415];
5353 xx[63] = motionData[416] * motionData[416];
5354 xx[65] = motionData[414] * motionData[415];
5355 xx[69] = motionData[413] * motionData[416];
5356 xx[73] = motionData[413] * motionData[415];
5357 xx[74] = motionData[414] * motionData[416];
5358 xx[81] = xx[5] - (xx[62] + xx[63]) * xx[4];
5359 xx[82] = xx[4] * (xx[65] - xx[69]);
5360 xx[83] = (xx[73] + xx[74]) * xx[4];
5361 pm_math_cross3(xx + 81, xx + 16, xx + 84);
5362 pm_math_quatXform(xx + 89, xx + 84, xx + 81);
5363 xx[84] = xx[48];
5364 xx[85] = xx[60];
5365 xx[86] = xx[40];
5366 xx[40] = xx[49] * motionData[418];
5367 xx[60] = xx[61] * motionData[419];
5368 xx[87] = xx[40] + xx[60];
5369 xx[88] = xx[48] * motionData[418];
5370 xx[93] = xx[48] * motionData[419];
5371 xx[94] = - xx[87];
5372 xx[95] = - xx[88];
5373 xx[96] = - xx[93];
5374 pm_math_cross3(xx + 84, xx + 94, xx + 97);
5375 xx[94] = xx[49] * xx[8];
5376 xx[95] = xx[61] * xx[15];
5377 xx[96] = xx[94] - xx[95];
5378 xx[100] = xx[8] * xx[48];
5379 xx[101] = xx[15] * xx[48];
5380 xx[102] = xx[96];
5381 xx[103] = xx[100];
5382 xx[104] = - xx[101];
5383 pm_math_cross3(xx + 84, xx + 102, xx + 105);
5384 xx[102] = xx[4] * (xx[97] - xx[87] * xx[41]) + (xx[41] * xx[96] + xx[105]) *
5385 xx[4];
5386 xx[103] = xx[4] * (xx[98] - xx[88] * xx[41]) + xx[4] * (xx[106] + xx[100] *
5387 xx[41]) - motionData[419] - xx[15];
5388 xx[104] = motionData[418] + xx[4] * (xx[99] - xx[93] * xx[41]) + (xx[107] -
5389 xx[101] * xx[41]) * xx[4] - xx[8];
5390 pm_math_quatXform(xx + 36, xx + 102, xx + 96);
5391 xx[87] = motionData[414] * motionData[414];
5392 xx[88] = motionData[415] * motionData[416];
5393 xx[93] = motionData[413] * motionData[414];
5394 xx[99] = (xx[69] + xx[65]) * xx[4];
5395 xx[100] = xx[5] - (xx[63] + xx[87]) * xx[4];
5396 xx[101] = xx[4] * (xx[88] - xx[93]);
5397 pm_math_cross3(xx + 99, xx + 16, xx + 102);
5398 pm_math_quatXform(xx + 89, xx + 102, xx + 99);
5399 xx[63] = xx[49] * motionData[417];
5400 xx[65] = xx[48] * motionData[417];
5401 xx[69] = xx[65] - xx[60];
5402 xx[60] = xx[49] * motionData[419];
5403 xx[102] = xx[63];
5404 xx[103] = xx[69];
5405 xx[104] = xx[60];
5406 pm_math_cross3(xx + 84, xx + 102, xx + 105);
5407 xx[102] = xx[49] * xx[6];
5408 xx[103] = xx[6] * xx[48];
5409 xx[48] = xx[95] - xx[103];
5410 xx[95] = xx[49] * xx[15];
5411 xx[108] = xx[102];
5412 xx[109] = - xx[48];
5413 xx[110] = xx[95];
5414 pm_math_cross3(xx + 84, xx + 108, xx + 111);
5415 xx[108] = motionData[419] + (xx[63] * xx[41] + xx[105]) * xx[4] + xx[4] * (xx
5416 [111] + xx[102] * xx[41]) + xx[15];
5417 xx[109] = (xx[41] * xx[69] + xx[106]) * xx[4] + xx[4] * (xx[112] - xx[48] *
5418 xx[41]);
5419 xx[110] = (xx[60] * xx[41] + xx[107]) * xx[4] + (xx[95] * xx[41] + xx[113]) *
5420 xx[4] - motionData[417] - xx[6];
5421 pm_math_quatXform(xx + 36, xx + 108, xx + 104);
5422 xx[107] = xx[4] * (xx[74] - xx[73]);
5423 xx[108] = (xx[93] + xx[88]) * xx[4];
5424 xx[109] = xx[5] - (xx[87] + xx[62]) * xx[4];
5425 pm_math_cross3(xx + 107, xx + 16, xx + 110);
5426 pm_math_quatXform(xx + 89, xx + 110, xx + 107);
5427 xx[15] = xx[61] * motionData[417];
5428 xx[48] = xx[61] * motionData[418];
5429 xx[49] = xx[65] - xx[40];
5430 xx[87] = xx[15];
5431 xx[88] = xx[48];
5432 xx[89] = xx[49];
5433 pm_math_cross3(xx + 84, xx + 87, xx + 90);
5434 xx[40] = xx[61] * xx[6];
5435 xx[60] = xx[61] * xx[8];
5436 xx[61] = xx[103] + xx[94];
5437 xx[87] = xx[40];
5438 xx[88] = - xx[60];
5439 xx[89] = xx[61];
5440 pm_math_cross3(xx + 84, xx + 87, xx + 93);
5441 xx[84] = (xx[15] * xx[41] + xx[90]) * xx[4] + (xx[40] * xx[41] + xx[93]) * xx
5442 [4] - motionData[418] + xx[8];
5443 xx[85] = motionData[417] + (xx[48] * xx[41] + xx[91]) * xx[4] + xx[4] * (xx[94]
5444 - xx[60] * xx[41]) + xx[6];
5445 xx[86] = (xx[41] * xx[49] + xx[92]) * xx[4] + (xx[61] * xx[41] + xx[95]) * xx
5446 [4];
5447 pm_math_quatXform(xx + 36, xx + 84, xx + 60);
5448 xx[15] = xx[2] * state[30];
5449 xx[36] = cos(xx[15]);
5450 xx[37] = sin(xx[15]);
5451 xx[38] = xx[36] * motionData[217] - xx[37] * motionData[220];
5452 xx[39] = xx[36] * motionData[218] + xx[37] * motionData[219];
5453 xx[40] = xx[36] * motionData[219] - xx[37] * motionData[218];
5454 xx[41] = xx[37] * motionData[217] + xx[36] * motionData[220];
5455 xx[84] = motionData[70];
5456 xx[85] = motionData[71];
5457 xx[86] = motionData[72];
5458 xx[87] = motionData[73];
5459 pm_math_quatCompose(xx + 38, xx + 84, xx + 88);
5460 xx[38] = xx[4] * (motionData[71] * motionData[73] - motionData[70] *
5461 motionData[72]);
5462 xx[39] = (motionData[70] * motionData[71] + motionData[72] * motionData[73]) *
5463 xx[4];
5464 xx[40] = xx[5] - (motionData[71] * motionData[71] + motionData[72] *
5465 motionData[72]) * xx[4];
5466 pm_math_cross3(xx + 38, xx + 16, xx + 84);
5467 pm_math_quatXform(xx + 88, xx + 84, xx + 15);
5468 xx[18] = xx[37] * motionData[75];
5469 xx[38] = xx[37] * motionData[74];
5470 xx[39] = 0.02540000000000185;
5471 xx[40] = xx[39] * xx[37];
5472 xx[41] = xx[4] * (xx[18] * xx[37] - xx[36] * xx[38]) - motionData[75] + xx[4] *
5473 xx[36] * xx[40];
5474 xx[84] = motionData[218];
5475 xx[85] = motionData[219];
5476 xx[86] = motionData[220];
5477 xx[48] = motionData[74] - ((xx[36] * xx[18] + xx[38] * xx[37]) * xx[4] - xx[4]
5478 * xx[40] * xx[37]) - xx[39];
5479 xx[18] = xx[48] * motionData[220];
5480 xx[36] = xx[41] * motionData[220];
5481 xx[37] = xx[48] * motionData[218] - xx[41] * motionData[219];
5482 xx[38] = - xx[18];
5483 xx[39] = xx[36];
5484 xx[40] = xx[37];
5485 pm_math_cross3(xx + 84, xx + 38, xx + 87);
5486 xx[90] = motionData[224];
5487 xx[91] = motionData[225];
5488 xx[92] = motionData[226];
5489 xx[93] = motionData[227];
5490 xx[38] = 0.3535533905932758;
5491 xx[39] = xx[2] * state[38];
5492 xx[40] = cos(xx[39]);
5493 xx[49] = xx[38] * xx[40];
5494 xx[63] = sin(xx[39]);
5495 xx[39] = xx[38] * xx[63];
5496 xx[38] = xx[49] + xx[39];
5497 xx[65] = 0.6123724356957934;
5498 xx[69] = xx[65] * xx[40];
5499 xx[40] = xx[65] * xx[63];
5500 xx[63] = xx[69] - xx[40];
5501 xx[65] = xx[69] + xx[40];
5502 xx[40] = xx[49] - xx[39];
5503 xx[110] = xx[38];
5504 xx[111] = xx[63];
5505 xx[112] = xx[65];
5506 xx[113] = xx[40];
5507 pm_math_quatCompose(xx + 90, xx + 110, xx + 114);
5508 xx[39] = xx[6] * xx[117];
5509 xx[49] = xx[6] * xx[115] - xx[8] * xx[116];
5510 xx[84] = - xx[39];
5511 xx[85] = xx[8] * xx[117];
5512 xx[86] = xx[49];
5513 pm_math_cross3(xx + 115, xx + 84, xx + 110);
5514 xx[69] = 6.30935626036444e-12;
5515 xx[84] = xx[63];
5516 xx[85] = xx[65];
5517 xx[86] = xx[40];
5518 xx[73] = 5.998698970888227e-12;
5519 xx[74] = xx[73] * xx[40];
5520 xx[94] = xx[69] * xx[40];
5521 xx[40] = xx[73] * xx[63] + xx[65] * xx[69];
5522 xx[118] = xx[74];
5523 xx[119] = xx[94];
5524 xx[120] = - xx[40];
5525 pm_math_cross3(xx + 84, xx + 118, xx + 121);
5526 xx[84] = xx[69] + xx[4] * (xx[121] + xx[38] * xx[74]);
5527 xx[85] = (xx[38] * xx[94] + xx[122]) * xx[4] - xx[73];
5528 xx[86] = (xx[123] - xx[38] * xx[40]) * xx[4];
5529 pm_math_quatXform(xx + 90, xx + 84, xx + 118);
5530 xx[38] = 0.3162538200043575;
5531 xx[40] = xx[2] * state[86];
5532 xx[63] = sin(xx[40]);
5533 xx[65] = 0.3162553791961478;
5534 xx[69] = cos(xx[40]);
5535 xx[40] = xx[38] * xx[63] - xx[65] * xx[69];
5536 xx[73] = 0.6324445710612973;
5537 xx[74] = 0.6324396579890008;
5538 xx[84] = xx[73] * xx[69] + xx[74] * xx[63];
5539 xx[85] = - xx[84];
5540 xx[86] = xx[74] * xx[69] - xx[73] * xx[63];
5541 xx[73] = xx[38] * xx[69] + xx[65] * xx[63];
5542 xx[90] = xx[40];
5543 xx[91] = xx[85];
5544 xx[92] = xx[86];
5545 xx[93] = xx[73];
5546 xx[121] = motionData[406];
5547 xx[122] = motionData[407];
5548 xx[123] = motionData[408];
5549 xx[124] = motionData[409];
5550 pm_math_quatCompose(xx + 90, xx + 121, xx + 125);
5551 xx[90] = xx[4] * (motionData[406] * motionData[408] - motionData[407] *
5552 motionData[409]);
5553 xx[91] = - ((motionData[406] * motionData[407] + motionData[408] * motionData
5554 [409]) * xx[4]);
5555 xx[92] = (motionData[407] * motionData[407] + motionData[408] * motionData[408])
5556 * xx[4] - xx[5];
5557 xx[38] = 3.641924106626229e-8;
5558 xx[63] = 0.04574999999998041;
5559 xx[65] = 2.92603149291605e-7;
5560 xx[93] = xx[38];
5561 xx[94] = xx[63];
5562 xx[95] = xx[65];
5563 pm_math_cross3(xx + 90, xx + 93, xx + 121);
5564 pm_math_quatXform(xx + 125, xx + 121, xx + 90);
5565 xx[69] = xx[73] * motionData[410];
5566 xx[121] = xx[85];
5567 xx[122] = xx[86];
5568 xx[123] = xx[73];
5569 xx[74] = xx[73] * motionData[411];
5570 xx[85] = xx[86] * motionData[411] - xx[84] * motionData[410];
5571 xx[124] = xx[69];
5572 xx[125] = xx[74];
5573 xx[126] = - xx[85];
5574 pm_math_cross3(xx + 121, xx + 124, xx + 127);
5575 xx[102] = xx[19] * xx[84];
5576 xx[103] = xx[19] * xx[73];
5577 xx[113] = xx[2] * state[88];
5578 xx[2] = cos(xx[113]);
5579 xx[115] = sin(xx[113]);
5580 xx[121] = xx[2] * motionData[169] - xx[115] * motionData[170];
5581 xx[122] = - (xx[2] * motionData[168] + xx[115] * motionData[171]);
5582 xx[123] = xx[115] * motionData[168] - xx[2] * motionData[171];
5583 xx[124] = xx[115] * motionData[169] + xx[2] * motionData[170];
5584 xx[130] = motionData[182];
5585 xx[131] = motionData[183];
5586 xx[132] = motionData[184];
5587 xx[133] = motionData[185];
5588 pm_math_quatCompose(xx + 121, xx + 130, xx + 134);
5589 xx[121] = xx[4] * (motionData[183] * motionData[185] - motionData[182] *
5590 motionData[184]);
5591 xx[122] = (motionData[182] * motionData[183] + motionData[184] * motionData
5592 [185]) * xx[4];
5593 xx[123] = xx[5] - (motionData[183] * motionData[183] + motionData[184] *
5594 motionData[184]) * xx[4];
5595 pm_math_cross3(xx + 121, xx + 93, xx + 124);
5596 pm_math_quatXform(xx + 134, xx + 124, xx + 93);
5597 xx[5] = xx[115] * motionData[187] - xx[2] * motionData[186];
5598 xx[113] = 1.600627075326599e-13;
5599 xx[116] = 8.497959654019115e-12;
5600 xx[121] = xx[113] * xx[2] + xx[116] * xx[115];
5601 xx[122] = xx[4] * xx[115] * xx[5] - (motionData[187] - xx[4] * xx[121] * xx
5602 [115]) - xx[116];
5603 xx[123] = motionData[169];
5604 xx[124] = motionData[170];
5605 xx[125] = motionData[171];
5606 xx[115] = motionData[186] + xx[4] * xx[2] * xx[5] + xx[4] * xx[121] * xx[2] -
5607 xx[113];
5608 xx[2] = xx[115] * motionData[171];
5609 xx[5] = xx[122] * motionData[171];
5610 xx[113] = xx[115] * motionData[169] - xx[122] * motionData[170];
5611 xx[130] = - xx[2];
5612 xx[131] = xx[5];
5613 xx[132] = xx[113];
5614 pm_math_cross3(xx + 123, xx + 130, xx + 133);
5615 xx[123] = motionData[385];
5616 xx[124] = motionData[386];
5617 xx[125] = motionData[387];
5618 xx[126] = motionData[388];
5619 xx[116] = xx[33] * state[93] - xx[34] * state[90];
5620 xx[121] = xx[33] * state[92] + xx[34] * state[91];
5621 xx[130] = - xx[121];
5622 xx[131] = xx[34] * state[92] - xx[33] * state[91];
5623 xx[132] = - xx[131];
5624 xx[136] = xx[33] * state[90] + xx[34] * state[93];
5625 xx[33] = - xx[136];
5626 xx[137] = xx[116];
5627 xx[138] = xx[130];
5628 xx[139] = xx[132];
5629 xx[140] = xx[33];
5630 pm_math_quatCompose(xx + 123, xx + 137, xx + 141);
5631 xx[34] = - 2.329268144978725e-13;
5632 xx[145] = xx[34];
5633 xx[146] = - xx[65];
5634 xx[147] = 0.0457500000000094;
5635 pm_math_quatXform(xx + 141, xx + 145, xx + 148);
5636 pm_math_quatXform(xx + 137, xx + 75, xx + 145);
5637 pm_math_quatXform(xx + 123, xx + 145, xx + 75);
5638 xx[145] = xx[65];
5639 xx[146] = xx[34];
5640 xx[147] = 5.855191459023036e-14;
5641 pm_math_quatXform(xx + 141, xx + 145, xx + 151);
5642 pm_math_quatXform(xx + 137, xx + 78, xx + 145);
5643 pm_math_quatXform(xx + 123, xx + 145, xx + 78);
5644 xx[34] = xx[38] * xx[144];
5645 xx[65] = xx[38] * xx[142] + xx[63] * xx[143];
5646 xx[137] = - xx[34];
5647 xx[138] = - (xx[63] * xx[144]);
5648 xx[139] = xx[65];
5649 pm_math_cross3(xx + 142, xx + 137, xx + 145);
5650 xx[137] = xx[130];
5651 xx[138] = xx[132];
5652 xx[139] = xx[33];
5653 xx[33] = xx[53] * xx[136];
5654 xx[130] = xx[64] * xx[136];
5655 xx[132] = xx[53] * xx[121] + xx[131] * xx[64];
5656 xx[154] = xx[33];
5657 xx[155] = xx[130];
5658 xx[156] = - xx[132];
5659 pm_math_cross3(xx + 137, xx + 154, xx + 157);
5660 xx[136] = xx[4] * (xx[157] + xx[33] * xx[116]) - xx[64];
5661 xx[137] = xx[53] + (xx[130] * xx[116] + xx[158]) * xx[4];
5662 xx[138] = (xx[159] - xx[132] * xx[116]) * xx[4];
5663 pm_math_quatXform(xx + 123, xx + 136, xx + 130);
5664 J[6] = xx[12] + motionData[439] + (xx[26] - xx[3] * xx[1]) * xx[4] + xx[4] *
5665 (xx[11] * xx[20] - xx[3] * xx[21]);
5666 J[7] = xx[29] + xx[35] + xx[4] * (xx[42] - xx[23] * motionData[14]);
5667 J[8] = xx[66] + xx[70];
5668 J[9] = xx[54] + xx[57];
5669 J[10] = xx[50] + xx[45];
5670 J[11] = xx[81] + xx[96];
5671 J[12] = xx[99] + xx[104];
5672 J[13] = xx[107] + xx[60];
5673 J[14] = xx[15] + xx[41] + xx[4] * (xx[87] - xx[18] * motionData[217]);
5674 J[18] = xx[4] * (xx[110] - xx[114] * xx[39]) + xx[118] + xx[8];
5675 J[40] = - (xx[90] + motionData[411] + (xx[40] * xx[69] + xx[127]) * xx[4] +
5676 xx[4] * (xx[86] * xx[102] + xx[40] * xx[103]));
5677 J[41] = - (xx[93] + xx[122] + xx[4] * (xx[133] - xx[2] * motionData[168]));
5678 J[42] = - (xx[148] + xx[75]);
5679 J[43] = - (xx[151] + xx[78]);
5680 J[44] = - (xx[4] * (xx[145] - xx[141] * xx[34]) + xx[130] - xx[63]);
5681 J[51] = xx[13] + (xx[27] - xx[3] * xx[10]) * xx[4] - (motionData[438] - (xx[21]
5682 * xx[7] + xx[20] * xx[9]) * xx[4]) - xx[19];
5683 J[52] = xx[30] + xx[25] + (xx[24] * motionData[14] + xx[43]) * xx[4];
5684 J[53] = xx[67] + xx[71];
5685 J[54] = xx[55] + xx[58];
5686 J[55] = xx[51] + xx[46];
5687 J[56] = xx[82] + xx[97];
5688 J[57] = xx[100] + xx[105];
5689 J[58] = xx[108] + xx[61];
5690 J[59] = xx[16] + xx[48] + (xx[36] * motionData[217] + xx[88]) * xx[4];
5691 J[63] = (xx[8] * xx[114] * xx[117] + xx[111]) * xx[4] + xx[119] + xx[6];
5692 J[85] = - (xx[91] + (xx[40] * xx[74] + xx[128]) * xx[4] - (motionData[410] -
5693 (xx[103] * xx[73] + xx[102] * xx[84]) * xx[4]) - xx[19]);
5694 J[86] = - (xx[94] + xx[115] + (xx[5] * motionData[168] + xx[134]) * xx[4]);
5695 J[87] = - (xx[149] + xx[76]);
5696 J[88] = - (xx[152] + xx[79]);
5697 J[89] = - ((xx[146] - xx[63] * xx[141] * xx[144]) * xx[4] + xx[131] + xx[38]);
5698 J[96] = xx[14] + xx[4] * (xx[28] - xx[22] * xx[3]) + (xx[3] * xx[20] + xx[11] *
5699 xx[21]) * xx[4];
5700 J[97] = xx[31] + (xx[32] * motionData[14] + xx[44]) * xx[4];
5701 J[98] = xx[68] + xx[72];
5702 J[99] = xx[56] + xx[59];
5703 J[100] = xx[52] + xx[47];
5704 J[101] = xx[83] + xx[98];
5705 J[102] = xx[101] + xx[106];
5706 J[103] = xx[109] + xx[62];
5707 J[104] = xx[17] + (xx[37] * motionData[217] + xx[89]) * xx[4];
5708 J[108] = (xx[114] * xx[49] + xx[112]) * xx[4] + xx[120];
5709 J[130] = - (xx[92] + xx[4] * (xx[129] - xx[40] * xx[85]) + (xx[40] * xx[102] -
5710 xx[86] * xx[103]) * xx[4]);
5711 J[131] = - (xx[95] + (xx[113] * motionData[168] + xx[135]) * xx[4]);
5712 J[132] = - (xx[150] + xx[77]);
5713 J[133] = - (xx[153] + xx[80]);
5714 J[134] = - ((xx[141] * xx[65] + xx[147]) * xx[4] + xx[132]);
5715 return 3;
5716}
5717
5718static size_t computeAssemblyJacobian_4(const double *rtdv, const double *state,
5719 const double *motionData, double *J)
5720{
5721 double xx[160];
5722 (void) rtdv;
5723 xx[0] = 0.0;
5724 xx[1] = 0.3895853754265615;
5725 xx[2] = 0.5;
5726 xx[3] = xx[2] * state[12];
5727 xx[4] = cos(xx[3]);
5728 xx[5] = 0.389581900177037;
5729 xx[6] = sin(xx[3]);
5730 xx[3] = xx[1] * xx[4] - xx[5] * xx[6];
5731 xx[7] = 0.5901074779979933;
5732 xx[8] = 0.5901036711621462;
5733 xx[9] = xx[7] * xx[4] + xx[8] * xx[6];
5734 xx[10] = - xx[9];
5735 xx[11] = xx[8] * xx[4] - xx[7] * xx[6];
5736 xx[7] = xx[5] * xx[4] + xx[1] * xx[6];
5737 xx[1] = - xx[7];
5738 xx[12] = xx[3];
5739 xx[13] = xx[10];
5740 xx[14] = xx[11];
5741 xx[15] = xx[1];
5742 xx[16] = motionData[490];
5743 xx[17] = motionData[491];
5744 xx[18] = motionData[492];
5745 xx[19] = motionData[493];
5746 pm_math_quatCompose(xx + 12, xx + 16, xx + 20);
5747 xx[4] = 2.0;
5748 xx[5] = 1.0;
5749 xx[12] = xx[4] * (motionData[490] * motionData[492] - motionData[491] *
5750 motionData[493]);
5751 xx[13] = - ((motionData[490] * motionData[491] + motionData[492] * motionData
5752 [493]) * xx[4]);
5753 xx[14] = (motionData[491] * motionData[491] + motionData[492] * motionData[492])
5754 * xx[4] - xx[5];
5755 xx[6] = 7.599121945184391e-12;
5756 xx[8] = 5.036130209737022e-12;
5757 xx[15] = 5.192027881355888e-12;
5758 xx[16] = - xx[6];
5759 xx[17] = xx[8];
5760 xx[18] = - xx[15];
5761 pm_math_cross3(xx + 12, xx + 16, xx + 24);
5762 pm_math_quatXform(xx + 20, xx + 24, xx + 12);
5763 xx[19] = xx[10];
5764 xx[20] = xx[11];
5765 xx[21] = xx[1];
5766 xx[1] = xx[7] * motionData[494];
5767 xx[10] = xx[7] * motionData[495];
5768 xx[22] = xx[11] * motionData[495] - xx[9] * motionData[494];
5769 xx[23] = - xx[1];
5770 xx[24] = - xx[10];
5771 xx[25] = - xx[22];
5772 pm_math_cross3(xx + 19, xx + 23, xx + 26);
5773 xx[19] = 0.02520954632904373;
5774 xx[20] = xx[19] * xx[9];
5775 xx[21] = xx[19] * xx[7];
5776 xx[23] = xx[2] * state[14];
5777 xx[24] = cos(xx[23]);
5778 xx[25] = sin(xx[23]);
5779 xx[29] = xx[24] * motionData[15] - xx[25] * motionData[16];
5780 xx[30] = - (xx[24] * motionData[14] + xx[25] * motionData[17]);
5781 xx[31] = xx[25] * motionData[14] - xx[24] * motionData[17];
5782 xx[32] = xx[25] * motionData[15] + xx[24] * motionData[16];
5783 xx[33] = motionData[483];
5784 xx[34] = motionData[484];
5785 xx[35] = motionData[485];
5786 xx[36] = motionData[486];
5787 pm_math_quatCompose(xx + 29, xx + 33, xx + 37);
5788 xx[29] = xx[4] * (motionData[484] * motionData[486] - motionData[483] *
5789 motionData[485]);
5790 xx[30] = (motionData[483] * motionData[484] + motionData[485] * motionData[486])
5791 * xx[4];
5792 xx[31] = xx[5] - (motionData[484] * motionData[484] + motionData[485] *
5793 motionData[485]) * xx[4];
5794 pm_math_cross3(xx + 29, xx + 16, xx + 32);
5795 pm_math_quatXform(xx + 37, xx + 32, xx + 29);
5796 xx[23] = xx[25] * motionData[488] - xx[24] * motionData[487];
5797 xx[32] = 7.748428954013064e-12;
5798 xx[33] = 5.376764528053357e-12;
5799 xx[34] = xx[32] * xx[24] - xx[33] * xx[25];
5800 xx[35] = xx[4] * xx[25] * xx[23] - (motionData[488] + xx[4] * xx[34] * xx[25])
5801 - xx[33];
5802 xx[36] = motionData[15];
5803 xx[37] = motionData[16];
5804 xx[38] = motionData[17];
5805 xx[25] = motionData[487] + xx[4] * xx[24] * xx[23] - xx[4] * xx[34] * xx[24] +
5806 xx[32];
5807 xx[23] = xx[25] * motionData[17];
5808 xx[24] = xx[35] * motionData[17];
5809 xx[32] = xx[25] * motionData[15] - xx[35] * motionData[16];
5810 xx[39] = - xx[23];
5811 xx[40] = xx[24];
5812 xx[41] = xx[32];
5813 pm_math_cross3(xx + 36, xx + 39, xx + 42);
5814 xx[36] = motionData[203];
5815 xx[37] = motionData[204];
5816 xx[38] = motionData[205];
5817 xx[39] = motionData[206];
5818 xx[33] = 3.980251324392935e-7;
5819 xx[34] = 0.999999999999921;
5820 xx[40] = xx[33] * state[19] - xx[34] * state[16];
5821 xx[41] = xx[33] * state[18] + xx[34] * state[17];
5822 xx[45] = - xx[41];
5823 xx[46] = xx[34] * state[18] - xx[33] * state[17];
5824 xx[47] = - xx[46];
5825 xx[48] = xx[33] * state[16] + xx[34] * state[19];
5826 xx[49] = - xx[48];
5827 xx[50] = xx[40];
5828 xx[51] = xx[45];
5829 xx[52] = xx[47];
5830 xx[53] = xx[49];
5831 pm_math_quatCompose(xx + 36, xx + 50, xx + 54);
5832 xx[58] = motionData[476];
5833 xx[59] = motionData[477];
5834 xx[60] = motionData[478];
5835 xx[61] = motionData[479];
5836 pm_math_quatCompose(xx + 54, xx + 58, xx + 62);
5837 xx[54] = motionData[477];
5838 xx[55] = motionData[478];
5839 xx[56] = motionData[479];
5840 xx[57] = 7.960502648785241e-7;
5841 xx[58] = xx[57] * motionData[479];
5842 xx[59] = xx[57] * motionData[477] + motionData[478];
5843 xx[66] = xx[58];
5844 xx[67] = motionData[479];
5845 xx[68] = - xx[59];
5846 pm_math_cross3(xx + 54, xx + 66, xx + 69);
5847 xx[60] = motionData[476] * motionData[479];
5848 xx[66] = xx[5] + (xx[69] - xx[58] * motionData[476]) * xx[4];
5849 xx[67] = xx[4] * (xx[70] - xx[60]) - xx[57];
5850 xx[68] = xx[4] * (xx[71] + xx[59] * motionData[476]);
5851 pm_math_cross3(xx + 66, xx + 16, xx + 69);
5852 pm_math_quatXform(xx + 62, xx + 69, xx + 66);
5853 xx[59] = - (xx[57] * motionData[482]);
5854 xx[69] = xx[59];
5855 xx[70] = - motionData[482];
5856 xx[71] = motionData[481] + xx[57] * motionData[480];
5857 pm_math_quatXform(xx + 50, xx + 69, xx + 72);
5858 xx[61] = 2.329280111075767e-13;
5859 xx[69] = 2.926046524751139e-7;
5860 xx[75] = xx[61];
5861 xx[76] = xx[69];
5862 xx[77] = 0.04575000000718987;
5863 pm_math_quatXform(xx + 50, xx + 75, xx + 78);
5864 xx[81] = xx[72] + xx[78];
5865 xx[82] = xx[73] + xx[79];
5866 xx[83] = xx[74] + xx[80];
5867 pm_math_quatXform(xx + 36, xx + 81, xx + 70);
5868 xx[73] = motionData[477] - xx[57] * motionData[478];
5869 xx[78] = - motionData[479];
5870 xx[79] = xx[58];
5871 xx[80] = xx[73];
5872 pm_math_cross3(xx + 54, xx + 78, xx + 81);
5873 xx[54] = xx[57] + (xx[60] + xx[81]) * xx[4];
5874 xx[55] = xx[5] + xx[4] * (xx[82] - xx[57] * xx[60]);
5875 xx[56] = xx[4] * (xx[83] - xx[73] * motionData[476]);
5876 pm_math_cross3(xx + 54, xx + 16, xx + 78);
5877 pm_math_quatXform(xx + 62, xx + 78, xx + 54);
5878 xx[78] = motionData[482];
5879 xx[79] = xx[59];
5880 xx[80] = xx[57] * motionData[481] - motionData[480];
5881 pm_math_quatXform(xx + 50, xx + 78, xx + 57);
5882 xx[78] = - xx[69];
5883 xx[79] = xx[61];
5884 xx[80] = 7.670997177269469e-12;
5885 pm_math_quatXform(xx + 50, xx + 78, xx + 81);
5886 xx[50] = xx[57] + xx[81];
5887 xx[51] = xx[58] + xx[82];
5888 xx[52] = xx[59] + xx[83];
5889 pm_math_quatXform(xx + 36, xx + 50, xx + 57);
5890 xx[50] = xx[4] * (motionData[477] * motionData[479] - motionData[476] *
5891 motionData[478]);
5892 xx[51] = (motionData[476] * motionData[477] + motionData[478] * motionData[479])
5893 * xx[4];
5894 xx[52] = xx[5] - (motionData[477] * motionData[477] + motionData[478] *
5895 motionData[478]) * xx[4];
5896 pm_math_cross3(xx + 50, xx + 16, xx + 81);
5897 pm_math_quatXform(xx + 62, xx + 81, xx + 50);
5898 xx[60] = xx[45];
5899 xx[61] = xx[47];
5900 xx[62] = xx[49];
5901 xx[45] = xx[48] * motionData[480];
5902 xx[47] = xx[48] * motionData[481];
5903 xx[49] = xx[41] * motionData[480] + xx[46] * motionData[481];
5904 xx[63] = xx[45];
5905 xx[64] = xx[47];
5906 xx[65] = - xx[49];
5907 pm_math_cross3(xx + 60, xx + 63, xx + 81);
5908 xx[53] = 3.641162862673871e-8;
5909 xx[63] = xx[53] * xx[48];
5910 xx[64] = 0.04575000000717538;
5911 xx[65] = xx[64] * xx[48];
5912 xx[48] = xx[53] * xx[41] + xx[46] * xx[64];
5913 xx[84] = xx[63];
5914 xx[85] = xx[65];
5915 xx[86] = - xx[48];
5916 pm_math_cross3(xx + 60, xx + 84, xx + 87);
5917 xx[60] = xx[4] * (xx[81] + xx[45] * xx[40]) + xx[4] * (xx[87] + xx[63] * xx[40])
5918 - motionData[481] - xx[64];
5919 xx[61] = motionData[480] + xx[4] * (xx[82] + xx[47] * xx[40]) + (xx[65] * xx
5920 [40] + xx[88]) * xx[4] + xx[53];
5921 xx[62] = (xx[83] - xx[49] * xx[40]) * xx[4] + (xx[89] - xx[48] * xx[40]) * xx
5922 [4];
5923 pm_math_quatXform(xx + 36, xx + 60, xx + 45);
5924 xx[36] = motionData[210];
5925 xx[37] = motionData[211];
5926 xx[38] = motionData[212];
5927 xx[39] = motionData[213];
5928 xx[40] = 3.980251340548381e-7;
5929 xx[41] = xx[34] * state[26] - xx[40] * state[23];
5930 xx[48] = xx[34] * state[25] - xx[40] * state[24];
5931 xx[49] = xx[40] * state[25] + xx[34] * state[24];
5932 xx[60] = - xx[49];
5933 xx[61] = xx[40] * state[26] + xx[34] * state[23];
5934 xx[40] = - xx[61];
5935 xx[81] = xx[41];
5936 xx[82] = xx[48];
5937 xx[83] = xx[60];
5938 xx[84] = xx[40];
5939 pm_math_quatCompose(xx + 36, xx + 81, xx + 85);
5940 xx[81] = motionData[469];
5941 xx[82] = motionData[470];
5942 xx[83] = motionData[471];
5943 xx[84] = motionData[472];
5944 pm_math_quatCompose(xx + 85, xx + 81, xx + 89);
5945 xx[62] = motionData[471] * motionData[471];
5946 xx[63] = motionData[472] * motionData[472];
5947 xx[65] = motionData[470] * motionData[471];
5948 xx[69] = motionData[469] * motionData[472];
5949 xx[73] = motionData[469] * motionData[471];
5950 xx[74] = motionData[470] * motionData[472];
5951 xx[81] = xx[5] - (xx[62] + xx[63]) * xx[4];
5952 xx[82] = xx[4] * (xx[65] - xx[69]);
5953 xx[83] = (xx[73] + xx[74]) * xx[4];
5954 pm_math_cross3(xx + 81, xx + 16, xx + 84);
5955 pm_math_quatXform(xx + 89, xx + 84, xx + 81);
5956 xx[84] = xx[48];
5957 xx[85] = xx[60];
5958 xx[86] = xx[40];
5959 xx[40] = xx[49] * motionData[474];
5960 xx[60] = xx[61] * motionData[475];
5961 xx[87] = xx[40] + xx[60];
5962 xx[88] = xx[48] * motionData[474];
5963 xx[93] = xx[48] * motionData[475];
5964 xx[94] = - xx[87];
5965 xx[95] = - xx[88];
5966 xx[96] = - xx[93];
5967 pm_math_cross3(xx + 84, xx + 94, xx + 97);
5968 xx[94] = xx[49] * xx[8];
5969 xx[95] = xx[61] * xx[15];
5970 xx[96] = xx[94] - xx[95];
5971 xx[100] = xx[8] * xx[48];
5972 xx[101] = xx[15] * xx[48];
5973 xx[102] = xx[96];
5974 xx[103] = xx[100];
5975 xx[104] = - xx[101];
5976 pm_math_cross3(xx + 84, xx + 102, xx + 105);
5977 xx[102] = xx[4] * (xx[97] - xx[87] * xx[41]) + (xx[41] * xx[96] + xx[105]) *
5978 xx[4];
5979 xx[103] = xx[4] * (xx[98] - xx[88] * xx[41]) + xx[4] * (xx[106] + xx[100] *
5980 xx[41]) - motionData[475] - xx[15];
5981 xx[104] = motionData[474] + xx[4] * (xx[99] - xx[93] * xx[41]) + (xx[107] -
5982 xx[101] * xx[41]) * xx[4] - xx[8];
5983 pm_math_quatXform(xx + 36, xx + 102, xx + 96);
5984 xx[87] = motionData[470] * motionData[470];
5985 xx[88] = motionData[471] * motionData[472];
5986 xx[93] = motionData[469] * motionData[470];
5987 xx[99] = (xx[69] + xx[65]) * xx[4];
5988 xx[100] = xx[5] - (xx[63] + xx[87]) * xx[4];
5989 xx[101] = xx[4] * (xx[88] - xx[93]);
5990 pm_math_cross3(xx + 99, xx + 16, xx + 102);
5991 pm_math_quatXform(xx + 89, xx + 102, xx + 99);
5992 xx[63] = xx[49] * motionData[473];
5993 xx[65] = xx[48] * motionData[473];
5994 xx[69] = xx[65] - xx[60];
5995 xx[60] = xx[49] * motionData[475];
5996 xx[102] = xx[63];
5997 xx[103] = xx[69];
5998 xx[104] = xx[60];
5999 pm_math_cross3(xx + 84, xx + 102, xx + 105);
6000 xx[102] = xx[49] * xx[6];
6001 xx[103] = xx[6] * xx[48];
6002 xx[48] = xx[95] - xx[103];
6003 xx[95] = xx[49] * xx[15];
6004 xx[108] = xx[102];
6005 xx[109] = - xx[48];
6006 xx[110] = xx[95];
6007 pm_math_cross3(xx + 84, xx + 108, xx + 111);
6008 xx[108] = motionData[475] + (xx[63] * xx[41] + xx[105]) * xx[4] + xx[4] * (xx
6009 [111] + xx[102] * xx[41]) + xx[15];
6010 xx[109] = (xx[41] * xx[69] + xx[106]) * xx[4] + xx[4] * (xx[112] - xx[48] *
6011 xx[41]);
6012 xx[110] = (xx[60] * xx[41] + xx[107]) * xx[4] + (xx[95] * xx[41] + xx[113]) *
6013 xx[4] - motionData[473] - xx[6];
6014 pm_math_quatXform(xx + 36, xx + 108, xx + 104);
6015 xx[107] = xx[4] * (xx[74] - xx[73]);
6016 xx[108] = (xx[93] + xx[88]) * xx[4];
6017 xx[109] = xx[5] - (xx[87] + xx[62]) * xx[4];
6018 pm_math_cross3(xx + 107, xx + 16, xx + 110);
6019 pm_math_quatXform(xx + 89, xx + 110, xx + 107);
6020 xx[15] = xx[61] * motionData[473];
6021 xx[48] = xx[61] * motionData[474];
6022 xx[49] = xx[65] - xx[40];
6023 xx[87] = xx[15];
6024 xx[88] = xx[48];
6025 xx[89] = xx[49];
6026 pm_math_cross3(xx + 84, xx + 87, xx + 90);
6027 xx[40] = xx[61] * xx[6];
6028 xx[60] = xx[61] * xx[8];
6029 xx[61] = xx[103] + xx[94];
6030 xx[87] = xx[40];
6031 xx[88] = - xx[60];
6032 xx[89] = xx[61];
6033 pm_math_cross3(xx + 84, xx + 87, xx + 93);
6034 xx[84] = (xx[15] * xx[41] + xx[90]) * xx[4] + (xx[40] * xx[41] + xx[93]) * xx
6035 [4] - motionData[474] + xx[8];
6036 xx[85] = motionData[473] + (xx[48] * xx[41] + xx[91]) * xx[4] + xx[4] * (xx[94]
6037 - xx[60] * xx[41]) + xx[6];
6038 xx[86] = (xx[41] * xx[49] + xx[92]) * xx[4] + (xx[61] * xx[41] + xx[95]) * xx
6039 [4];
6040 pm_math_quatXform(xx + 36, xx + 84, xx + 60);
6041 xx[15] = xx[2] * state[30];
6042 xx[36] = cos(xx[15]);
6043 xx[37] = sin(xx[15]);
6044 xx[38] = xx[36] * motionData[217] - xx[37] * motionData[220];
6045 xx[39] = xx[36] * motionData[218] + xx[37] * motionData[219];
6046 xx[40] = xx[36] * motionData[219] - xx[37] * motionData[218];
6047 xx[41] = xx[37] * motionData[217] + xx[36] * motionData[220];
6048 xx[84] = motionData[77];
6049 xx[85] = motionData[78];
6050 xx[86] = motionData[79];
6051 xx[87] = motionData[80];
6052 pm_math_quatCompose(xx + 38, xx + 84, xx + 88);
6053 xx[38] = xx[4] * (motionData[78] * motionData[80] - motionData[77] *
6054 motionData[79]);
6055 xx[39] = (motionData[77] * motionData[78] + motionData[79] * motionData[80]) *
6056 xx[4];
6057 xx[40] = xx[5] - (motionData[78] * motionData[78] + motionData[79] *
6058 motionData[79]) * xx[4];
6059 pm_math_cross3(xx + 38, xx + 16, xx + 84);
6060 pm_math_quatXform(xx + 88, xx + 84, xx + 15);
6061 xx[18] = xx[37] * motionData[82];
6062 xx[38] = xx[37] * motionData[81];
6063 xx[39] = 0.02540000000000185;
6064 xx[40] = xx[39] * xx[37];
6065 xx[41] = xx[4] * (xx[18] * xx[37] - xx[36] * xx[38]) - motionData[82] + xx[4] *
6066 xx[36] * xx[40];
6067 xx[84] = motionData[218];
6068 xx[85] = motionData[219];
6069 xx[86] = motionData[220];
6070 xx[48] = motionData[81] - ((xx[36] * xx[18] + xx[38] * xx[37]) * xx[4] - xx[4]
6071 * xx[40] * xx[37]) - xx[39];
6072 xx[18] = xx[48] * motionData[220];
6073 xx[36] = xx[41] * motionData[220];
6074 xx[37] = xx[48] * motionData[218] - xx[41] * motionData[219];
6075 xx[38] = - xx[18];
6076 xx[39] = xx[36];
6077 xx[40] = xx[37];
6078 pm_math_cross3(xx + 84, xx + 38, xx + 87);
6079 xx[90] = motionData[224];
6080 xx[91] = motionData[225];
6081 xx[92] = motionData[226];
6082 xx[93] = motionData[227];
6083 xx[38] = 0.6123724356957949;
6084 xx[39] = xx[2] * state[40];
6085 xx[40] = sin(xx[39]);
6086 xx[49] = xx[38] * xx[40];
6087 xx[63] = cos(xx[39]);
6088 xx[39] = xx[38] * xx[63];
6089 xx[38] = xx[49] - xx[39];
6090 xx[65] = 0.3535533905932732;
6091 xx[69] = xx[65] * xx[63];
6092 xx[63] = xx[65] * xx[40];
6093 xx[40] = xx[69] + xx[63];
6094 xx[65] = - xx[40];
6095 xx[73] = xx[63] - xx[69];
6096 xx[63] = xx[49] + xx[39];
6097 xx[39] = - xx[63];
6098 xx[110] = xx[38];
6099 xx[111] = xx[65];
6100 xx[112] = xx[73];
6101 xx[113] = xx[39];
6102 pm_math_quatCompose(xx + 90, xx + 110, xx + 114);
6103 xx[49] = xx[6] * xx[117];
6104 xx[69] = xx[8] * xx[116] - xx[6] * xx[115];
6105 xx[84] = xx[49];
6106 xx[85] = - (xx[8] * xx[117]);
6107 xx[86] = xx[69];
6108 pm_math_cross3(xx + 115, xx + 84, xx + 110);
6109 xx[74] = 5.088251355846174e-12;
6110 xx[84] = xx[65];
6111 xx[85] = xx[73];
6112 xx[86] = xx[39];
6113 xx[39] = 7.483145982728478e-12;
6114 xx[65] = xx[63] * xx[39];
6115 xx[94] = xx[63] * xx[74];
6116 xx[63] = xx[40] * xx[39] + xx[74] * xx[73];
6117 xx[118] = xx[65];
6118 xx[119] = - xx[94];
6119 xx[120] = - xx[63];
6120 pm_math_cross3(xx + 84, xx + 118, xx + 121);
6121 xx[84] = xx[74] + xx[4] * (xx[121] + xx[65] * xx[38]);
6122 xx[85] = xx[39] + (xx[122] - xx[94] * xx[38]) * xx[4];
6123 xx[86] = (xx[123] - xx[63] * xx[38]) * xx[4];
6124 pm_math_quatXform(xx + 90, xx + 84, xx + 38);
6125 xx[63] = 0.04233709306330295;
6126 xx[65] = xx[2] * state[42];
6127 xx[73] = cos(xx[65]);
6128 xx[74] = 0.04233598682685397;
6129 xx[84] = sin(xx[65]);
6130 xx[65] = xx[63] * xx[73] + xx[74] * xx[84];
6131 xx[85] = 0.7058357201813958;
6132 xx[86] = 0.7058407546227096;
6133 xx[90] = xx[85] * xx[84] - xx[86] * xx[73];
6134 xx[91] = xx[85] * xx[73] + xx[86] * xx[84];
6135 xx[85] = xx[63] * xx[84] - xx[74] * xx[73];
6136 xx[92] = xx[65];
6137 xx[93] = xx[90];
6138 xx[94] = xx[91];
6139 xx[95] = xx[85];
6140 xx[118] = motionData[462];
6141 xx[119] = motionData[463];
6142 xx[120] = motionData[464];
6143 xx[121] = motionData[465];
6144 pm_math_quatCompose(xx + 92, xx + 118, xx + 122);
6145 xx[92] = xx[4] * (motionData[463] * motionData[465] - motionData[462] *
6146 motionData[464]);
6147 xx[93] = (motionData[462] * motionData[463] + motionData[464] * motionData[465])
6148 * xx[4];
6149 xx[94] = xx[5] - (motionData[463] * motionData[463] + motionData[464] *
6150 motionData[464]) * xx[4];
6151 xx[63] = 3.641924106626229e-8;
6152 xx[73] = 0.04574999999998041;
6153 xx[74] = 2.92603149291605e-7;
6154 xx[118] = xx[63];
6155 xx[119] = xx[73];
6156 xx[120] = xx[74];
6157 pm_math_cross3(xx + 92, xx + 118, xx + 126);
6158 pm_math_quatXform(xx + 122, xx + 126, xx + 92);
6159 xx[121] = xx[90];
6160 xx[122] = xx[91];
6161 xx[123] = xx[85];
6162 xx[84] = xx[85] * motionData[466];
6163 xx[86] = xx[85] * motionData[467];
6164 xx[95] = xx[90] * motionData[466] + xx[91] * motionData[467];
6165 xx[124] = - xx[84];
6166 xx[125] = - xx[86];
6167 xx[126] = xx[95];
6168 pm_math_cross3(xx + 121, xx + 124, xx + 127);
6169 xx[102] = xx[90] * xx[19];
6170 xx[103] = xx[85] * xx[19];
6171 xx[113] = xx[2] * state[44];
6172 xx[2] = cos(xx[113]);
6173 xx[115] = sin(xx[113]);
6174 xx[121] = xx[2] * motionData[85] - xx[115] * motionData[86];
6175 xx[122] = - (xx[2] * motionData[84] + xx[115] * motionData[87]);
6176 xx[123] = xx[115] * motionData[84] - xx[2] * motionData[87];
6177 xx[124] = xx[115] * motionData[85] + xx[2] * motionData[86];
6178 xx[130] = motionData[98];
6179 xx[131] = motionData[99];
6180 xx[132] = motionData[100];
6181 xx[133] = motionData[101];
6182 pm_math_quatCompose(xx + 121, xx + 130, xx + 134);
6183 xx[121] = xx[4] * (motionData[99] * motionData[101] - motionData[98] *
6184 motionData[100]);
6185 xx[122] = (motionData[98] * motionData[99] + motionData[100] * motionData[101])
6186 * xx[4];
6187 xx[123] = xx[5] - (motionData[99] * motionData[99] + motionData[100] *
6188 motionData[100]) * xx[4];
6189 pm_math_cross3(xx + 121, xx + 118, xx + 124);
6190 pm_math_quatXform(xx + 134, xx + 124, xx + 118);
6191 xx[5] = xx[115] * motionData[103] - xx[2] * motionData[102];
6192 xx[113] = 3.107391981487723e-12;
6193 xx[116] = 9.83617579279345e-12;
6194 xx[121] = xx[113] * xx[2] + xx[116] * xx[115];
6195 xx[122] = xx[4] * xx[115] * xx[5] - (motionData[103] - xx[4] * xx[121] * xx
6196 [115]) - xx[116];
6197 xx[123] = motionData[85];
6198 xx[124] = motionData[86];
6199 xx[125] = motionData[87];
6200 xx[115] = motionData[102] + xx[4] * xx[2] * xx[5] + xx[4] * xx[121] * xx[2] -
6201 xx[113];
6202 xx[2] = xx[115] * motionData[87];
6203 xx[5] = xx[122] * motionData[87];
6204 xx[113] = xx[115] * motionData[85] - xx[122] * motionData[86];
6205 xx[130] = - xx[2];
6206 xx[131] = xx[5];
6207 xx[132] = xx[113];
6208 pm_math_cross3(xx + 123, xx + 130, xx + 133);
6209 xx[123] = motionData[441];
6210 xx[124] = motionData[442];
6211 xx[125] = motionData[443];
6212 xx[126] = motionData[444];
6213 xx[116] = xx[33] * state[49] - xx[34] * state[46];
6214 xx[121] = xx[33] * state[48] + xx[34] * state[47];
6215 xx[130] = - xx[121];
6216 xx[131] = xx[34] * state[48] - xx[33] * state[47];
6217 xx[132] = - xx[131];
6218 xx[136] = xx[33] * state[46] + xx[34] * state[49];
6219 xx[33] = - xx[136];
6220 xx[137] = xx[116];
6221 xx[138] = xx[130];
6222 xx[139] = xx[132];
6223 xx[140] = xx[33];
6224 pm_math_quatCompose(xx + 123, xx + 137, xx + 141);
6225 xx[34] = - 2.329268144978725e-13;
6226 xx[145] = xx[34];
6227 xx[146] = - xx[74];
6228 xx[147] = 0.0457500000000094;
6229 pm_math_quatXform(xx + 141, xx + 145, xx + 148);
6230 pm_math_quatXform(xx + 137, xx + 75, xx + 145);
6231 pm_math_quatXform(xx + 123, xx + 145, xx + 75);
6232 xx[145] = xx[74];
6233 xx[146] = xx[34];
6234 xx[147] = 5.855191459023036e-14;
6235 pm_math_quatXform(xx + 141, xx + 145, xx + 151);
6236 pm_math_quatXform(xx + 137, xx + 78, xx + 145);
6237 pm_math_quatXform(xx + 123, xx + 145, xx + 78);
6238 xx[34] = xx[63] * xx[144];
6239 xx[74] = xx[63] * xx[142] + xx[73] * xx[143];
6240 xx[137] = - xx[34];
6241 xx[138] = - (xx[73] * xx[144]);
6242 xx[139] = xx[74];
6243 pm_math_cross3(xx + 142, xx + 137, xx + 145);
6244 xx[137] = xx[130];
6245 xx[138] = xx[132];
6246 xx[139] = xx[33];
6247 xx[33] = xx[53] * xx[136];
6248 xx[130] = xx[64] * xx[136];
6249 xx[132] = xx[53] * xx[121] + xx[131] * xx[64];
6250 xx[154] = xx[33];
6251 xx[155] = xx[130];
6252 xx[156] = - xx[132];
6253 pm_math_cross3(xx + 137, xx + 154, xx + 157);
6254 xx[136] = xx[4] * (xx[157] + xx[33] * xx[116]) - xx[64];
6255 xx[137] = xx[53] + (xx[130] * xx[116] + xx[158]) * xx[4];
6256 xx[138] = (xx[159] - xx[132] * xx[116]) * xx[4];
6257 pm_math_quatXform(xx + 123, xx + 136, xx + 130);
6258 J[6] = xx[12] + motionData[495] + (xx[26] - xx[3] * xx[1]) * xx[4] + xx[4] *
6259 (xx[11] * xx[20] - xx[3] * xx[21]);
6260 J[7] = xx[29] + xx[35] + xx[4] * (xx[42] - xx[23] * motionData[14]);
6261 J[8] = xx[66] + xx[70];
6262 J[9] = xx[54] + xx[57];
6263 J[10] = xx[50] + xx[45];
6264 J[11] = xx[81] + xx[96];
6265 J[12] = xx[99] + xx[104];
6266 J[13] = xx[107] + xx[60];
6267 J[14] = xx[15] + xx[41] + xx[4] * (xx[87] - xx[18] * motionData[217]);
6268 J[19] = xx[4] * (xx[110] + xx[114] * xx[49]) + xx[38] - xx[8];
6269 J[20] = - (xx[92] + xx[4] * (xx[127] - xx[84] * xx[65]) - motionData[467] +
6270 xx[4] * (xx[102] * xx[91] - xx[103] * xx[65]));
6271 J[21] = - (xx[118] + xx[122] + xx[4] * (xx[133] - xx[2] * motionData[84]));
6272 J[22] = - (xx[148] + xx[75]);
6273 J[23] = - (xx[151] + xx[78]);
6274 J[24] = - (xx[4] * (xx[145] - xx[141] * xx[34]) + xx[130] - xx[73]);
6275 J[51] = xx[13] + (xx[27] - xx[3] * xx[10]) * xx[4] - (motionData[494] - (xx[21]
6276 * xx[7] + xx[20] * xx[9]) * xx[4]) - xx[19];
6277 J[52] = xx[30] + xx[25] + (xx[24] * motionData[14] + xx[43]) * xx[4];
6278 J[53] = xx[67] + xx[71];
6279 J[54] = xx[55] + xx[58];
6280 J[55] = xx[51] + xx[46];
6281 J[56] = xx[82] + xx[97];
6282 J[57] = xx[100] + xx[105];
6283 J[58] = xx[108] + xx[61];
6284 J[59] = xx[16] + xx[48] + (xx[36] * motionData[217] + xx[88]) * xx[4];
6285 J[64] = (xx[111] - xx[8] * xx[114] * xx[117]) * xx[4] + xx[39] - xx[6];
6286 J[65] = - (xx[93] + motionData[466] + xx[4] * (xx[128] - xx[86] * xx[65]) -
6287 (xx[85] * xx[103] + xx[90] * xx[102]) * xx[4] + xx[19]);
6288 J[66] = - (xx[119] + xx[115] + (xx[5] * motionData[84] + xx[134]) * xx[4]);
6289 J[67] = - (xx[149] + xx[76]);
6290 J[68] = - (xx[152] + xx[79]);
6291 J[69] = - ((xx[146] - xx[73] * xx[141] * xx[144]) * xx[4] + xx[131] + xx[63]);
6292 J[96] = xx[14] + xx[4] * (xx[28] - xx[3] * xx[22]) + (xx[3] * xx[20] + xx[11] *
6293 xx[21]) * xx[4];
6294 J[97] = xx[31] + (xx[32] * motionData[14] + xx[44]) * xx[4];
6295 J[98] = xx[68] + xx[72];
6296 J[99] = xx[56] + xx[59];
6297 J[100] = xx[52] + xx[47];
6298 J[101] = xx[83] + xx[98];
6299 J[102] = xx[101] + xx[106];
6300 J[103] = xx[109] + xx[62];
6301 J[104] = xx[17] + (xx[37] * motionData[217] + xx[89]) * xx[4];
6302 J[109] = (xx[114] * xx[69] + xx[112]) * xx[4] + xx[40];
6303 J[110] = - (xx[94] + (xx[95] * xx[65] + xx[129]) * xx[4] + (xx[102] * xx[65] +
6304 xx[103] * xx[91]) * xx[4]);
6305 J[111] = - (xx[120] + (xx[113] * motionData[84] + xx[135]) * xx[4]);
6306 J[112] = - (xx[150] + xx[77]);
6307 J[113] = - (xx[153] + xx[80]);
6308 J[114] = - ((xx[141] * xx[74] + xx[147]) * xx[4] + xx[132]);
6309 return 3;
6310}
6311
6312size_t PlatformAssem_f0ca4364_1_computeAssemblyJacobian(const void *mech, const
6313 double *rtdv, size_t constraintIdx, boolean_T forVelocitySatisfaction, const
6314 double *state, const double *motionData, double *J)
6315{
6316 (void) mech;
6317 (void) rtdv;
6318 (void) state;
6319 (void) forVelocitySatisfaction;
6320 (void) motionData;
6321 (void) J;
6322 switch (constraintIdx)
6323 {
6324 case 0:
6325 return computeAssemblyJacobian_0(rtdv, state, motionData, J);
6326
6327 case 1:
6328 return computeAssemblyJacobian_1(rtdv, state, motionData, J);
6329
6330 case 2:
6331 return computeAssemblyJacobian_2(rtdv, state, motionData, J);
6332
6333 case 3:
6334 return computeAssemblyJacobian_3(rtdv, state, motionData, J);
6335
6336 case 4:
6337 return computeAssemblyJacobian_4(rtdv, state, motionData, J);
6338 }
6339
6340 return 0;
6341}
6342
6343size_t PlatformAssem_f0ca4364_1_computeFullAssemblyJacobian(const void *mech,
6344 const double *rtdv, const double *state, const double *motionData, double *J)
6345{
6346 double xx[674];
6347 (void) mech;
6348 (void) rtdv;
6349 xx[0] = 0.0;
6350 xx[1] = 0.3895853754265615;
6351 xx[2] = 0.5;
6352 xx[3] = xx[2] * state[12];
6353 xx[4] = cos(xx[3]);
6354 xx[5] = 0.389581900177037;
6355 xx[6] = sin(xx[3]);
6356 xx[3] = xx[1] * xx[4] - xx[5] * xx[6];
6357 xx[7] = 0.5901074779979933;
6358 xx[8] = 0.5901036711621462;
6359 xx[9] = xx[7] * xx[4] + xx[8] * xx[6];
6360 xx[10] = - xx[9];
6361 xx[11] = xx[8] * xx[4] - xx[7] * xx[6];
6362 xx[7] = xx[5] * xx[4] + xx[1] * xx[6];
6363 xx[1] = - xx[7];
6364 xx[12] = xx[3];
6365 xx[13] = xx[10];
6366 xx[14] = xx[11];
6367 xx[15] = xx[1];
6368 xx[16] = motionData[266];
6369 xx[17] = motionData[267];
6370 xx[18] = motionData[268];
6371 xx[19] = motionData[269];
6372 pm_math_quatCompose(xx + 12, xx + 16, xx + 20);
6373 xx[4] = 2.0;
6374 xx[5] = 1.0;
6375 xx[16] = xx[4] * (motionData[266] * motionData[268] - motionData[267] *
6376 motionData[269]);
6377 xx[17] = - ((motionData[266] * motionData[267] + motionData[268] * motionData
6378 [269]) * xx[4]);
6379 xx[18] = (motionData[267] * motionData[267] + motionData[268] * motionData[268])
6380 * xx[4] - xx[5];
6381 xx[6] = 7.599121945184391e-12;
6382 xx[8] = 5.036130209737022e-12;
6383 xx[19] = 5.192027881355888e-12;
6384 xx[24] = - xx[6];
6385 xx[25] = xx[8];
6386 xx[26] = - xx[19];
6387 pm_math_cross3(xx + 16, xx + 24, xx + 27);
6388 pm_math_quatXform(xx + 20, xx + 27, xx + 16);
6389 xx[20] = xx[10];
6390 xx[21] = xx[11];
6391 xx[22] = xx[1];
6392 xx[1] = xx[7] * motionData[270];
6393 xx[10] = xx[7] * motionData[271];
6394 xx[23] = xx[11] * motionData[271] - xx[9] * motionData[270];
6395 xx[27] = - xx[1];
6396 xx[28] = - xx[10];
6397 xx[29] = - xx[23];
6398 pm_math_cross3(xx + 20, xx + 27, xx + 30);
6399 xx[27] = 0.02520954632904373;
6400 xx[28] = xx[27] * xx[9];
6401 xx[29] = xx[27] * xx[7];
6402 xx[33] = xx[4] * (xx[11] * xx[28] - xx[3] * xx[29]);
6403 xx[34] = xx[2] * state[14];
6404 xx[35] = cos(xx[34]);
6405 xx[36] = sin(xx[34]);
6406 xx[37] = xx[35] * motionData[15] - xx[36] * motionData[16];
6407 xx[38] = - (xx[35] * motionData[14] + xx[36] * motionData[17]);
6408 xx[39] = xx[36] * motionData[14] - xx[35] * motionData[17];
6409 xx[40] = xx[36] * motionData[15] + xx[35] * motionData[16];
6410 xx[41] = motionData[259];
6411 xx[42] = motionData[260];
6412 xx[43] = motionData[261];
6413 xx[44] = motionData[262];
6414 pm_math_quatCompose(xx + 37, xx + 41, xx + 45);
6415 xx[41] = xx[4] * (motionData[260] * motionData[262] - motionData[259] *
6416 motionData[261]);
6417 xx[42] = (motionData[259] * motionData[260] + motionData[261] * motionData[262])
6418 * xx[4];
6419 xx[43] = xx[5] - (motionData[260] * motionData[260] + motionData[261] *
6420 motionData[261]) * xx[4];
6421 pm_math_cross3(xx + 41, xx + 24, xx + 49);
6422 pm_math_quatXform(xx + 45, xx + 49, xx + 41);
6423 xx[34] = xx[36] * motionData[264] - xx[35] * motionData[263];
6424 xx[44] = 7.748428954013064e-12;
6425 xx[45] = 5.376764528053357e-12;
6426 xx[46] = xx[44] * xx[35] - xx[45] * xx[36];
6427 xx[47] = xx[4] * xx[46] * xx[36];
6428 xx[48] = xx[4] * xx[36] * xx[34] - (motionData[264] + xx[47]) - xx[45];
6429 xx[49] = motionData[15];
6430 xx[50] = motionData[16];
6431 xx[51] = motionData[17];
6432 xx[52] = xx[4] * xx[46] * xx[35];
6433 xx[46] = motionData[263] + xx[4] * xx[35] * xx[34] - xx[52] + xx[44];
6434 xx[34] = xx[46] * motionData[17];
6435 xx[53] = xx[48] * motionData[17];
6436 xx[54] = xx[46] * motionData[15] - xx[48] * motionData[16];
6437 xx[55] = - xx[34];
6438 xx[56] = xx[53];
6439 xx[57] = xx[54];
6440 pm_math_cross3(xx + 49, xx + 55, xx + 58);
6441 xx[61] = motionData[203];
6442 xx[62] = motionData[204];
6443 xx[63] = motionData[205];
6444 xx[64] = motionData[206];
6445 xx[55] = 3.980251324392935e-7;
6446 xx[56] = 0.999999999999921;
6447 xx[57] = xx[55] * state[19] - xx[56] * state[16];
6448 xx[65] = xx[55] * state[18] + xx[56] * state[17];
6449 xx[66] = - xx[65];
6450 xx[67] = xx[56] * state[18] - xx[55] * state[17];
6451 xx[68] = - xx[67];
6452 xx[69] = xx[55] * state[16] + xx[56] * state[19];
6453 xx[70] = - xx[69];
6454 xx[71] = xx[57];
6455 xx[72] = xx[66];
6456 xx[73] = xx[68];
6457 xx[74] = xx[70];
6458 pm_math_quatCompose(xx + 61, xx + 71, xx + 75);
6459 xx[79] = motionData[252];
6460 xx[80] = motionData[253];
6461 xx[81] = motionData[254];
6462 xx[82] = motionData[255];
6463 pm_math_quatCompose(xx + 75, xx + 79, xx + 83);
6464 xx[79] = motionData[253];
6465 xx[80] = motionData[254];
6466 xx[81] = motionData[255];
6467 xx[82] = 7.960502648785241e-7;
6468 xx[87] = xx[82] * motionData[255];
6469 xx[88] = xx[82] * motionData[253] + motionData[254];
6470 xx[89] = xx[87];
6471 xx[90] = motionData[255];
6472 xx[91] = - xx[88];
6473 pm_math_cross3(xx + 79, xx + 89, xx + 92);
6474 xx[89] = motionData[252] * motionData[255];
6475 xx[95] = xx[5] + (xx[92] - xx[87] * motionData[252]) * xx[4];
6476 xx[96] = xx[4] * (xx[93] - xx[89]) - xx[82];
6477 xx[97] = xx[4] * (xx[94] + xx[88] * motionData[252]);
6478 pm_math_cross3(xx + 95, xx + 24, xx + 90);
6479 pm_math_quatXform(xx + 83, xx + 90, xx + 93);
6480 xx[88] = - (xx[82] * motionData[258]);
6481 xx[90] = xx[88];
6482 xx[91] = - motionData[258];
6483 xx[92] = motionData[257] + xx[82] * motionData[256];
6484 pm_math_quatXform(xx + 71, xx + 90, xx + 96);
6485 xx[90] = 2.329280111075767e-13;
6486 xx[91] = 2.926046524751139e-7;
6487 xx[99] = xx[90];
6488 xx[100] = xx[91];
6489 xx[101] = 0.04575000000718987;
6490 pm_math_quatXform(xx + 71, xx + 99, xx + 102);
6491 xx[105] = xx[96] + xx[102];
6492 xx[106] = xx[97] + xx[103];
6493 xx[107] = xx[98] + xx[104];
6494 pm_math_quatXform(xx + 61, xx + 105, xx + 96);
6495 xx[92] = motionData[253] - xx[82] * motionData[254];
6496 xx[105] = - motionData[255];
6497 xx[106] = xx[87];
6498 xx[107] = xx[92];
6499 pm_math_cross3(xx + 79, xx + 105, xx + 108);
6500 xx[79] = xx[82] + (xx[89] + xx[108]) * xx[4];
6501 xx[80] = xx[5] + xx[4] * (xx[109] - xx[82] * xx[89]);
6502 xx[81] = xx[4] * (xx[110] - xx[92] * motionData[252]);
6503 pm_math_cross3(xx + 79, xx + 24, xx + 105);
6504 pm_math_quatXform(xx + 83, xx + 105, xx + 79);
6505 xx[105] = motionData[258];
6506 xx[106] = xx[88];
6507 xx[107] = xx[82] * motionData[257] - motionData[256];
6508 pm_math_quatXform(xx + 71, xx + 105, xx + 87);
6509 xx[105] = - xx[91];
6510 xx[106] = xx[90];
6511 xx[107] = 7.670997177269469e-12;
6512 pm_math_quatXform(xx + 71, xx + 105, xx + 90);
6513 xx[108] = xx[87] + xx[90];
6514 xx[109] = xx[88] + xx[91];
6515 xx[110] = xx[89] + xx[92];
6516 pm_math_quatXform(xx + 61, xx + 108, xx + 87);
6517 xx[108] = xx[4] * (motionData[253] * motionData[255] - motionData[252] *
6518 motionData[254]);
6519 xx[109] = (motionData[252] * motionData[253] + motionData[254] * motionData
6520 [255]) * xx[4];
6521 xx[110] = xx[5] - (motionData[253] * motionData[253] + motionData[254] *
6522 motionData[254]) * xx[4];
6523 pm_math_cross3(xx + 108, xx + 24, xx + 111);
6524 pm_math_quatXform(xx + 83, xx + 111, xx + 108);
6525 xx[83] = xx[66];
6526 xx[84] = xx[68];
6527 xx[85] = xx[70];
6528 xx[66] = xx[69] * motionData[256];
6529 xx[68] = xx[69] * motionData[257];
6530 xx[70] = xx[65] * motionData[256] + xx[67] * motionData[257];
6531 xx[111] = xx[66];
6532 xx[112] = xx[68];
6533 xx[113] = - xx[70];
6534 pm_math_cross3(xx + 83, xx + 111, xx + 114);
6535 xx[86] = 3.641162862673871e-8;
6536 xx[111] = xx[86] * xx[69];
6537 xx[112] = 0.04575000000717538;
6538 xx[113] = xx[112] * xx[69];
6539 xx[117] = xx[86] * xx[65] + xx[67] * xx[112];
6540 xx[118] = xx[111];
6541 xx[119] = xx[113];
6542 xx[120] = - xx[117];
6543 pm_math_cross3(xx + 83, xx + 118, xx + 121);
6544 xx[118] = xx[4] * (xx[121] + xx[111] * xx[57]);
6545 xx[111] = (xx[113] * xx[57] + xx[122]) * xx[4];
6546 xx[113] = (xx[123] - xx[117] * xx[57]) * xx[4];
6547 xx[119] = xx[4] * (xx[114] + xx[66] * xx[57]) + xx[118] - motionData[257] -
6548 xx[112];
6549 xx[120] = motionData[256] + xx[4] * (xx[115] + xx[68] * xx[57]) + xx[111] +
6550 xx[86];
6551 xx[121] = (xx[116] - xx[57] * xx[70]) * xx[4] + xx[113];
6552 pm_math_quatXform(xx + 61, xx + 119, xx + 114);
6553 xx[119] = motionData[210];
6554 xx[120] = motionData[211];
6555 xx[121] = motionData[212];
6556 xx[122] = motionData[213];
6557 xx[66] = 3.980251340548381e-7;
6558 xx[68] = xx[56] * state[26] - xx[66] * state[23];
6559 xx[70] = xx[56] * state[25] - xx[66] * state[24];
6560 xx[117] = xx[66] * state[25] + xx[56] * state[24];
6561 xx[123] = - xx[117];
6562 xx[124] = xx[66] * state[26] + xx[56] * state[23];
6563 xx[66] = - xx[124];
6564 xx[125] = xx[68];
6565 xx[126] = xx[70];
6566 xx[127] = xx[123];
6567 xx[128] = xx[66];
6568 pm_math_quatCompose(xx + 119, xx + 125, xx + 129);
6569 xx[125] = motionData[245];
6570 xx[126] = motionData[246];
6571 xx[127] = motionData[247];
6572 xx[128] = motionData[248];
6573 pm_math_quatCompose(xx + 129, xx + 125, xx + 133);
6574 xx[125] = motionData[247] * motionData[247];
6575 xx[126] = motionData[248] * motionData[248];
6576 xx[127] = motionData[246] * motionData[247];
6577 xx[128] = motionData[245] * motionData[248];
6578 xx[137] = motionData[245] * motionData[247];
6579 xx[138] = motionData[246] * motionData[248];
6580 xx[139] = xx[5] - (xx[125] + xx[126]) * xx[4];
6581 xx[140] = xx[4] * (xx[127] - xx[128]);
6582 xx[141] = (xx[137] + xx[138]) * xx[4];
6583 pm_math_cross3(xx + 139, xx + 24, xx + 142);
6584 pm_math_quatXform(xx + 133, xx + 142, xx + 139);
6585 xx[142] = xx[70];
6586 xx[143] = xx[123];
6587 xx[144] = xx[66];
6588 xx[66] = xx[117] * motionData[250];
6589 xx[123] = xx[124] * motionData[251];
6590 xx[145] = xx[66] + xx[123];
6591 xx[146] = xx[70] * motionData[250];
6592 xx[147] = xx[70] * motionData[251];
6593 xx[148] = - xx[145];
6594 xx[149] = - xx[146];
6595 xx[150] = - xx[147];
6596 pm_math_cross3(xx + 142, xx + 148, xx + 151);
6597 xx[148] = xx[117] * xx[8];
6598 xx[149] = xx[124] * xx[19];
6599 xx[150] = xx[148] - xx[149];
6600 xx[154] = xx[8] * xx[70];
6601 xx[155] = xx[19] * xx[70];
6602 xx[156] = xx[150];
6603 xx[157] = xx[154];
6604 xx[158] = - xx[155];
6605 pm_math_cross3(xx + 142, xx + 156, xx + 159);
6606 xx[156] = (xx[68] * xx[150] + xx[159]) * xx[4];
6607 xx[150] = xx[4] * (xx[160] + xx[154] * xx[68]);
6608 xx[154] = (xx[161] - xx[155] * xx[68]) * xx[4];
6609 xx[157] = xx[4] * (xx[151] - xx[145] * xx[68]) + xx[156];
6610 xx[158] = xx[4] * (xx[152] - xx[146] * xx[68]) + xx[150] - motionData[251] -
6611 xx[19];
6612 xx[159] = motionData[250] + xx[4] * (xx[153] - xx[147] * xx[68]) + xx[154] -
6613 xx[8];
6614 pm_math_quatXform(xx + 119, xx + 157, xx + 145);
6615 xx[151] = motionData[246] * motionData[246];
6616 xx[152] = motionData[247] * motionData[248];
6617 xx[153] = motionData[245] * motionData[246];
6618 xx[157] = (xx[128] + xx[127]) * xx[4];
6619 xx[158] = xx[5] - (xx[126] + xx[151]) * xx[4];
6620 xx[159] = xx[4] * (xx[152] - xx[153]);
6621 pm_math_cross3(xx + 157, xx + 24, xx + 126);
6622 pm_math_quatXform(xx + 133, xx + 126, xx + 157);
6623 xx[126] = xx[117] * motionData[249];
6624 xx[127] = xx[70] * motionData[249];
6625 xx[128] = xx[127] - xx[123];
6626 xx[123] = xx[117] * motionData[251];
6627 xx[160] = xx[126];
6628 xx[161] = xx[128];
6629 xx[162] = xx[123];
6630 pm_math_cross3(xx + 142, xx + 160, xx + 163);
6631 xx[155] = xx[117] * xx[6];
6632 xx[160] = xx[6] * xx[70];
6633 xx[161] = xx[149] - xx[160];
6634 xx[149] = xx[117] * xx[19];
6635 xx[166] = xx[155];
6636 xx[167] = - xx[161];
6637 xx[168] = xx[149];
6638 pm_math_cross3(xx + 142, xx + 166, xx + 169);
6639 xx[162] = xx[4] * (xx[169] + xx[155] * xx[68]);
6640 xx[155] = xx[4] * (xx[170] - xx[161] * xx[68]);
6641 xx[161] = (xx[149] * xx[68] + xx[171]) * xx[4];
6642 xx[166] = motionData[251] + (xx[126] * xx[68] + xx[163]) * xx[4] + xx[162] +
6643 xx[19];
6644 xx[167] = (xx[68] * xx[128] + xx[164]) * xx[4] + xx[155];
6645 xx[168] = (xx[123] * xx[68] + xx[165]) * xx[4] + xx[161] - motionData[249] -
6646 xx[6];
6647 pm_math_quatXform(xx + 119, xx + 166, xx + 163);
6648 xx[166] = xx[4] * (xx[138] - xx[137]);
6649 xx[167] = (xx[153] + xx[152]) * xx[4];
6650 xx[168] = xx[5] - (xx[151] + xx[125]) * xx[4];
6651 pm_math_cross3(xx + 166, xx + 24, xx + 151);
6652 pm_math_quatXform(xx + 133, xx + 151, xx + 166);
6653 xx[123] = xx[124] * motionData[249];
6654 xx[125] = xx[124] * motionData[250];
6655 xx[126] = xx[127] - xx[66];
6656 xx[133] = xx[123];
6657 xx[134] = xx[125];
6658 xx[135] = xx[126];
6659 pm_math_cross3(xx + 142, xx + 133, xx + 136);
6660 xx[66] = xx[124] * xx[6];
6661 xx[127] = xx[124] * xx[8];
6662 xx[128] = xx[160] + xx[148];
6663 xx[133] = xx[66];
6664 xx[134] = - xx[127];
6665 xx[135] = xx[128];
6666 pm_math_cross3(xx + 142, xx + 133, xx + 151);
6667 xx[133] = (xx[66] * xx[68] + xx[151]) * xx[4];
6668 xx[66] = xx[4] * (xx[152] - xx[127] * xx[68]);
6669 xx[127] = (xx[128] * xx[68] + xx[153]) * xx[4];
6670 xx[151] = (xx[123] * xx[68] + xx[136]) * xx[4] + xx[133] - motionData[250] +
6671 xx[8];
6672 xx[152] = motionData[249] + (xx[125] * xx[68] + xx[137]) * xx[4] + xx[66] +
6673 xx[6];
6674 xx[153] = (xx[68] * xx[126] + xx[138]) * xx[4] + xx[127];
6675 pm_math_quatXform(xx + 119, xx + 151, xx + 134);
6676 xx[123] = xx[2] * state[30];
6677 xx[125] = cos(xx[123]);
6678 xx[126] = sin(xx[123]);
6679 xx[169] = xx[125] * motionData[217] - xx[126] * motionData[220];
6680 xx[170] = xx[125] * motionData[218] + xx[126] * motionData[219];
6681 xx[171] = xx[125] * motionData[219] - xx[126] * motionData[218];
6682 xx[172] = xx[126] * motionData[217] + xx[125] * motionData[220];
6683 xx[173] = motionData[49];
6684 xx[174] = motionData[50];
6685 xx[175] = motionData[51];
6686 xx[176] = motionData[52];
6687 pm_math_quatCompose(xx + 169, xx + 173, xx + 177);
6688 xx[151] = xx[4] * (motionData[50] * motionData[52] - motionData[49] *
6689 motionData[51]);
6690 xx[152] = (motionData[49] * motionData[50] + motionData[51] * motionData[52]) *
6691 xx[4];
6692 xx[153] = xx[5] - (motionData[50] * motionData[50] + motionData[51] *
6693 motionData[51]) * xx[4];
6694 pm_math_cross3(xx + 151, xx + 24, xx + 173);
6695 pm_math_quatXform(xx + 177, xx + 173, xx + 151);
6696 xx[123] = xx[126] * motionData[54];
6697 xx[128] = xx[126] * motionData[53];
6698 xx[137] = 0.02540000000000185;
6699 xx[138] = xx[137] * xx[126];
6700 xx[148] = xx[4] * xx[125] * xx[138];
6701 xx[149] = xx[4] * (xx[123] * xx[126] - xx[125] * xx[128]) - motionData[54] +
6702 xx[148];
6703 xx[173] = motionData[218];
6704 xx[174] = motionData[219];
6705 xx[175] = motionData[220];
6706 xx[160] = xx[4] * xx[138] * xx[126];
6707 xx[138] = motionData[53] - ((xx[125] * xx[123] + xx[128] * xx[126]) * xx[4] -
6708 xx[160]) - xx[137];
6709 xx[123] = xx[138] * motionData[220];
6710 xx[128] = xx[149] * motionData[220];
6711 xx[176] = xx[138] * motionData[218] - xx[149] * motionData[219];
6712 xx[177] = - xx[123];
6713 xx[178] = xx[128];
6714 xx[179] = xx[176];
6715 pm_math_cross3(xx + 173, xx + 177, xx + 180);
6716 xx[177] = xx[2] * state[32];
6717 xx[178] = cos(xx[177]);
6718 xx[179] = sin(xx[177]);
6719 xx[177] = xx[178] * motionData[225] - xx[179] * motionData[226];
6720 xx[183] = xx[178] * motionData[226] + xx[179] * motionData[225];
6721 xx[184] = xx[178] * motionData[227] - xx[179] * motionData[224];
6722 xx[185] = xx[177];
6723 xx[186] = xx[183];
6724 xx[187] = xx[184];
6725 xx[188] = xx[6] * xx[184];
6726 xx[189] = xx[8] * xx[184];
6727 xx[184] = xx[6] * xx[177] - xx[183] * xx[8];
6728 xx[190] = - xx[188];
6729 xx[191] = xx[189];
6730 xx[192] = xx[184];
6731 pm_math_cross3(xx + 185, xx + 190, xx + 193);
6732 xx[177] = xx[178] * motionData[224] + xx[179] * motionData[227];
6733 xx[183] = 2.191920996097441e-12;
6734 xx[185] = xx[183] * xx[179];
6735 xx[186] = 3.368449963403463e-13;
6736 xx[187] = xx[186] * xx[179];
6737 xx[190] = xx[4] * (xx[185] * xx[179] - xx[178] * xx[187]) - xx[183];
6738 xx[196] = motionData[225];
6739 xx[197] = motionData[226];
6740 xx[198] = motionData[227];
6741 xx[183] = (xx[178] * xx[185] + xx[187] * xx[179]) * xx[4] - xx[186];
6742 xx[178] = xx[183] * motionData[227];
6743 xx[179] = xx[190] * motionData[227];
6744 xx[185] = xx[183] * motionData[225] - xx[190] * motionData[226];
6745 xx[199] = - xx[178];
6746 xx[200] = xx[179];
6747 xx[201] = xx[185];
6748 pm_math_cross3(xx + 196, xx + 199, xx + 202);
6749 xx[186] = 0.389585375426561;
6750 xx[187] = xx[2] * state[64];
6751 xx[191] = cos(xx[187]);
6752 xx[192] = 0.3895819001770367;
6753 xx[196] = sin(xx[187]);
6754 xx[187] = xx[186] * xx[191] - xx[192] * xx[196];
6755 xx[197] = 0.5901074779979936;
6756 xx[198] = 0.5901036711621467;
6757 xx[199] = xx[197] * xx[191] + xx[198] * xx[196];
6758 xx[200] = - xx[199];
6759 xx[201] = xx[198] * xx[191] - xx[197] * xx[196];
6760 xx[197] = xx[192] * xx[191] + xx[186] * xx[196];
6761 xx[186] = - xx[197];
6762 xx[205] = xx[187];
6763 xx[206] = xx[200];
6764 xx[207] = xx[201];
6765 xx[208] = xx[186];
6766 xx[209] = motionData[238];
6767 xx[210] = motionData[239];
6768 xx[211] = motionData[240];
6769 xx[212] = motionData[241];
6770 pm_math_quatCompose(xx + 205, xx + 209, xx + 213);
6771 xx[205] = xx[4] * (motionData[238] * motionData[240] - motionData[239] *
6772 motionData[241]);
6773 xx[206] = - ((motionData[238] * motionData[239] + motionData[240] *
6774 motionData[241]) * xx[4]);
6775 xx[207] = (motionData[239] * motionData[239] + motionData[240] * motionData
6776 [240]) * xx[4] - xx[5];
6777 xx[191] = 3.641924106626229e-8;
6778 xx[192] = 0.04574999999998041;
6779 xx[196] = 2.92603149291605e-7;
6780 xx[208] = xx[191];
6781 xx[209] = xx[192];
6782 xx[210] = xx[196];
6783 pm_math_cross3(xx + 205, xx + 208, xx + 217);
6784 pm_math_quatXform(xx + 213, xx + 217, xx + 205);
6785 xx[211] = xx[200];
6786 xx[212] = xx[201];
6787 xx[213] = xx[186];
6788 xx[186] = xx[197] * motionData[242];
6789 xx[198] = xx[197] * motionData[243];
6790 xx[200] = xx[201] * motionData[243] - xx[199] * motionData[242];
6791 xx[214] = - xx[186];
6792 xx[215] = - xx[198];
6793 xx[216] = - xx[200];
6794 pm_math_cross3(xx + 211, xx + 214, xx + 217);
6795 xx[211] = xx[27] * xx[199];
6796 xx[212] = xx[27] * xx[197];
6797 xx[213] = xx[2] * state[66];
6798 xx[214] = cos(xx[213]);
6799 xx[215] = sin(xx[213]);
6800 xx[220] = xx[214] * motionData[127] - xx[215] * motionData[128];
6801 xx[221] = - (xx[214] * motionData[126] + xx[215] * motionData[129]);
6802 xx[222] = xx[215] * motionData[126] - xx[214] * motionData[129];
6803 xx[223] = xx[215] * motionData[127] + xx[214] * motionData[128];
6804 xx[224] = motionData[140];
6805 xx[225] = motionData[141];
6806 xx[226] = motionData[142];
6807 xx[227] = motionData[143];
6808 pm_math_quatCompose(xx + 220, xx + 224, xx + 228);
6809 xx[220] = xx[4] * (motionData[141] * motionData[143] - motionData[140] *
6810 motionData[142]);
6811 xx[221] = (motionData[140] * motionData[141] + motionData[142] * motionData
6812 [143]) * xx[4];
6813 xx[222] = xx[5] - (motionData[141] * motionData[141] + motionData[142] *
6814 motionData[142]) * xx[4];
6815 pm_math_cross3(xx + 220, xx + 208, xx + 223);
6816 pm_math_quatXform(xx + 228, xx + 223, xx + 220);
6817 xx[213] = xx[215] * motionData[145] - xx[214] * motionData[144];
6818 xx[216] = 6.924287580811761e-12;
6819 xx[223] = 1.024070757638107e-11;
6820 xx[224] = xx[216] * xx[215] - xx[223] * xx[214];
6821 xx[225] = xx[4] * xx[215] * xx[213] - (motionData[145] + xx[4] * xx[224] * xx
6822 [215]) + xx[216];
6823 xx[226] = motionData[127];
6824 xx[227] = motionData[128];
6825 xx[228] = motionData[129];
6826 xx[215] = motionData[144] + xx[4] * xx[214] * xx[213] - xx[4] * xx[224] * xx
6827 [214] - xx[223];
6828 xx[213] = xx[215] * motionData[129];
6829 xx[214] = xx[225] * motionData[129];
6830 xx[216] = xx[215] * motionData[127] - xx[225] * motionData[128];
6831 xx[229] = - xx[213];
6832 xx[230] = xx[214];
6833 xx[231] = xx[216];
6834 pm_math_cross3(xx + 226, xx + 229, xx + 232);
6835 xx[226] = motionData[189];
6836 xx[227] = motionData[190];
6837 xx[228] = motionData[191];
6838 xx[229] = motionData[192];
6839 xx[223] = xx[55] * state[71] - xx[56] * state[68];
6840 xx[224] = xx[55] * state[70] + xx[56] * state[69];
6841 xx[230] = - xx[224];
6842 xx[231] = xx[56] * state[70] - xx[55] * state[69];
6843 xx[235] = - xx[231];
6844 xx[236] = xx[55] * state[68] + xx[56] * state[71];
6845 xx[237] = - xx[236];
6846 xx[238] = xx[223];
6847 xx[239] = xx[230];
6848 xx[240] = xx[235];
6849 xx[241] = xx[237];
6850 pm_math_quatCompose(xx + 226, xx + 238, xx + 242);
6851 xx[246] = - 2.329268144978725e-13;
6852 xx[247] = xx[246];
6853 xx[248] = - xx[196];
6854 xx[249] = 0.0457500000000094;
6855 pm_math_quatXform(xx + 242, xx + 247, xx + 250);
6856 pm_math_quatXform(xx + 238, xx + 99, xx + 253);
6857 pm_math_quatXform(xx + 226, xx + 253, xx + 256);
6858 xx[253] = xx[196];
6859 xx[254] = xx[246];
6860 xx[255] = 5.855191459023036e-14;
6861 pm_math_quatXform(xx + 242, xx + 253, xx + 259);
6862 pm_math_quatXform(xx + 238, xx + 105, xx + 262);
6863 pm_math_quatXform(xx + 226, xx + 262, xx + 238);
6864 xx[196] = xx[191] * xx[245];
6865 xx[241] = xx[191] * xx[243] + xx[192] * xx[244];
6866 xx[262] = - xx[196];
6867 xx[263] = - (xx[192] * xx[245]);
6868 xx[264] = xx[241];
6869 pm_math_cross3(xx + 243, xx + 262, xx + 265);
6870 xx[262] = xx[230];
6871 xx[263] = xx[235];
6872 xx[264] = xx[237];
6873 xx[230] = xx[86] * xx[236];
6874 xx[235] = xx[112] * xx[236];
6875 xx[236] = xx[86] * xx[224] + xx[231] * xx[112];
6876 xx[268] = xx[230];
6877 xx[269] = xx[235];
6878 xx[270] = - xx[236];
6879 pm_math_cross3(xx + 262, xx + 268, xx + 271);
6880 xx[262] = xx[4] * (xx[271] + xx[230] * xx[223]) - xx[112];
6881 xx[263] = xx[86] + (xx[235] * xx[223] + xx[272]) * xx[4];
6882 xx[264] = (xx[273] - xx[236] * xx[223]) * xx[4];
6883 pm_math_quatXform(xx + 226, xx + 262, xx + 235);
6884 xx[223] = (xx[29] * xx[7] + xx[28] * xx[9]) * xx[4];
6885 xx[224] = (xx[3] * xx[28] + xx[11] * xx[29]) * xx[4];
6886 xx[226] = motionData[322];
6887 xx[227] = motionData[323];
6888 xx[228] = motionData[324];
6889 xx[229] = motionData[325];
6890 pm_math_quatCompose(xx + 12, xx + 226, xx + 268);
6891 xx[226] = xx[4] * (motionData[322] * motionData[324] - motionData[323] *
6892 motionData[325]);
6893 xx[227] = - ((motionData[322] * motionData[323] + motionData[324] *
6894 motionData[325]) * xx[4]);
6895 xx[228] = (motionData[323] * motionData[323] + motionData[324] * motionData
6896 [324]) * xx[4] - xx[5];
6897 pm_math_cross3(xx + 226, xx + 24, xx + 229);
6898 pm_math_quatXform(xx + 268, xx + 229, xx + 226);
6899 xx[28] = xx[7] * motionData[326];
6900 xx[29] = xx[7] * motionData[327];
6901 xx[229] = xx[11] * motionData[327] - xx[9] * motionData[326];
6902 xx[262] = - xx[28];
6903 xx[263] = - xx[29];
6904 xx[264] = - xx[229];
6905 pm_math_cross3(xx + 20, xx + 262, xx + 268);
6906 xx[271] = motionData[315];
6907 xx[272] = motionData[316];
6908 xx[273] = motionData[317];
6909 xx[274] = motionData[318];
6910 pm_math_quatCompose(xx + 37, xx + 271, xx + 275);
6911 xx[262] = xx[4] * (motionData[316] * motionData[318] - motionData[315] *
6912 motionData[317]);
6913 xx[263] = (motionData[315] * motionData[316] + motionData[317] * motionData
6914 [318]) * xx[4];
6915 xx[264] = xx[5] - (motionData[316] * motionData[316] + motionData[317] *
6916 motionData[317]) * xx[4];
6917 pm_math_cross3(xx + 262, xx + 24, xx + 271);
6918 pm_math_quatXform(xx + 275, xx + 271, xx + 262);
6919 xx[230] = xx[36] * motionData[320] - xx[35] * motionData[319];
6920 xx[231] = xx[4] * xx[36] * xx[230] - (motionData[320] + xx[47]) - xx[45];
6921 xx[243] = motionData[319] + xx[4] * xx[35] * xx[230] - xx[52] + xx[44];
6922 xx[230] = xx[243] * motionData[17];
6923 xx[244] = xx[231] * motionData[17];
6924 xx[246] = xx[243] * motionData[15] - xx[231] * motionData[16];
6925 xx[271] = - xx[230];
6926 xx[272] = xx[244];
6927 xx[273] = xx[246];
6928 pm_math_cross3(xx + 49, xx + 271, xx + 274);
6929 xx[277] = motionData[308];
6930 xx[278] = motionData[309];
6931 xx[279] = motionData[310];
6932 xx[280] = motionData[311];
6933 pm_math_quatCompose(xx + 75, xx + 277, xx + 281);
6934 xx[271] = motionData[309];
6935 xx[272] = motionData[310];
6936 xx[273] = motionData[311];
6937 xx[277] = xx[82] * motionData[311];
6938 xx[278] = xx[82] * motionData[309] + motionData[310];
6939 xx[285] = xx[277];
6940 xx[286] = motionData[311];
6941 xx[287] = - xx[278];
6942 pm_math_cross3(xx + 271, xx + 285, xx + 288);
6943 xx[279] = motionData[308] * motionData[311];
6944 xx[285] = xx[5] + (xx[288] - xx[277] * motionData[308]) * xx[4];
6945 xx[286] = xx[4] * (xx[289] - xx[279]) - xx[82];
6946 xx[287] = xx[4] * (xx[290] + xx[278] * motionData[308]);
6947 pm_math_cross3(xx + 285, xx + 24, xx + 288);
6948 pm_math_quatXform(xx + 281, xx + 288, xx + 285);
6949 xx[278] = - (xx[82] * motionData[314]);
6950 xx[288] = xx[278];
6951 xx[289] = - motionData[314];
6952 xx[290] = motionData[313] + xx[82] * motionData[312];
6953 pm_math_quatXform(xx + 71, xx + 288, xx + 291);
6954 xx[288] = xx[291] + xx[102];
6955 xx[289] = xx[292] + xx[103];
6956 xx[290] = xx[293] + xx[104];
6957 pm_math_quatXform(xx + 61, xx + 288, xx + 291);
6958 xx[280] = motionData[309] - xx[82] * motionData[310];
6959 xx[288] = - motionData[311];
6960 xx[289] = xx[277];
6961 xx[290] = xx[280];
6962 pm_math_cross3(xx + 271, xx + 288, xx + 294);
6963 xx[271] = xx[82] + (xx[279] + xx[294]) * xx[4];
6964 xx[272] = xx[5] + xx[4] * (xx[295] - xx[82] * xx[279]);
6965 xx[273] = xx[4] * (xx[296] - xx[280] * motionData[308]);
6966 pm_math_cross3(xx + 271, xx + 24, xx + 288);
6967 pm_math_quatXform(xx + 281, xx + 288, xx + 271);
6968 xx[288] = motionData[314];
6969 xx[289] = xx[278];
6970 xx[290] = xx[82] * motionData[313] - motionData[312];
6971 pm_math_quatXform(xx + 71, xx + 288, xx + 277);
6972 xx[288] = xx[277] + xx[90];
6973 xx[289] = xx[278] + xx[91];
6974 xx[290] = xx[279] + xx[92];
6975 pm_math_quatXform(xx + 61, xx + 288, xx + 277);
6976 xx[288] = xx[4] * (motionData[309] * motionData[311] - motionData[308] *
6977 motionData[310]);
6978 xx[289] = (motionData[308] * motionData[309] + motionData[310] * motionData
6979 [311]) * xx[4];
6980 xx[290] = xx[5] - (motionData[309] * motionData[309] + motionData[310] *
6981 motionData[310]) * xx[4];
6982 pm_math_cross3(xx + 288, xx + 24, xx + 294);
6983 pm_math_quatXform(xx + 281, xx + 294, xx + 288);
6984 xx[280] = xx[69] * motionData[312];
6985 xx[281] = xx[69] * motionData[313];
6986 xx[282] = xx[65] * motionData[312] + xx[67] * motionData[313];
6987 xx[294] = xx[280];
6988 xx[295] = xx[281];
6989 xx[296] = - xx[282];
6990 pm_math_cross3(xx + 83, xx + 294, xx + 297);
6991 xx[294] = xx[4] * (xx[297] + xx[280] * xx[57]) + xx[118] - motionData[313] -
6992 xx[112];
6993 xx[295] = motionData[312] + xx[4] * (xx[298] + xx[281] * xx[57]) + xx[111] +
6994 xx[86];
6995 xx[296] = (xx[299] - xx[282] * xx[57]) * xx[4] + xx[113];
6996 pm_math_quatXform(xx + 61, xx + 294, xx + 280);
6997 xx[294] = motionData[301];
6998 xx[295] = motionData[302];
6999 xx[296] = motionData[303];
7000 xx[297] = motionData[304];
7001 pm_math_quatCompose(xx + 129, xx + 294, xx + 298);
7002 xx[283] = motionData[303] * motionData[303];
7003 xx[284] = motionData[304] * motionData[304];
7004 xx[294] = motionData[302] * motionData[303];
7005 xx[295] = motionData[301] * motionData[304];
7006 xx[296] = motionData[301] * motionData[303];
7007 xx[297] = motionData[302] * motionData[304];
7008 xx[302] = xx[5] - (xx[283] + xx[284]) * xx[4];
7009 xx[303] = xx[4] * (xx[294] - xx[295]);
7010 xx[304] = (xx[296] + xx[297]) * xx[4];
7011 pm_math_cross3(xx + 302, xx + 24, xx + 305);
7012 pm_math_quatXform(xx + 298, xx + 305, xx + 302);
7013 xx[305] = xx[117] * motionData[306];
7014 xx[306] = xx[124] * motionData[307];
7015 xx[307] = xx[305] + xx[306];
7016 xx[308] = xx[70] * motionData[306];
7017 xx[309] = xx[70] * motionData[307];
7018 xx[310] = - xx[307];
7019 xx[311] = - xx[308];
7020 xx[312] = - xx[309];
7021 pm_math_cross3(xx + 142, xx + 310, xx + 313);
7022 xx[310] = xx[4] * (xx[313] - xx[307] * xx[68]) + xx[156];
7023 xx[311] = xx[4] * (xx[314] - xx[308] * xx[68]) + xx[150] - motionData[307] -
7024 xx[19];
7025 xx[312] = motionData[306] + xx[4] * (xx[315] - xx[309] * xx[68]) + xx[154] -
7026 xx[8];
7027 pm_math_quatXform(xx + 119, xx + 310, xx + 307);
7028 xx[310] = motionData[302] * motionData[302];
7029 xx[311] = motionData[303] * motionData[304];
7030 xx[312] = motionData[301] * motionData[302];
7031 xx[313] = (xx[295] + xx[294]) * xx[4];
7032 xx[314] = xx[5] - (xx[284] + xx[310]) * xx[4];
7033 xx[315] = xx[4] * (xx[311] - xx[312]);
7034 pm_math_cross3(xx + 313, xx + 24, xx + 316);
7035 pm_math_quatXform(xx + 298, xx + 316, xx + 313);
7036 xx[284] = xx[117] * motionData[305];
7037 xx[294] = xx[70] * motionData[305];
7038 xx[295] = xx[294] - xx[306];
7039 xx[306] = xx[117] * motionData[307];
7040 xx[316] = xx[284];
7041 xx[317] = xx[295];
7042 xx[318] = xx[306];
7043 pm_math_cross3(xx + 142, xx + 316, xx + 319);
7044 xx[316] = motionData[307] + (xx[284] * xx[68] + xx[319]) * xx[4] + xx[162] +
7045 xx[19];
7046 xx[317] = (xx[295] * xx[68] + xx[320]) * xx[4] + xx[155];
7047 xx[318] = (xx[306] * xx[68] + xx[321]) * xx[4] + xx[161] - motionData[305] -
7048 xx[6];
7049 pm_math_quatXform(xx + 119, xx + 316, xx + 319);
7050 xx[316] = xx[4] * (xx[297] - xx[296]);
7051 xx[317] = (xx[312] + xx[311]) * xx[4];
7052 xx[318] = xx[5] - (xx[310] + xx[283]) * xx[4];
7053 pm_math_cross3(xx + 316, xx + 24, xx + 295);
7054 pm_math_quatXform(xx + 298, xx + 295, xx + 310);
7055 xx[283] = xx[124] * motionData[305];
7056 xx[284] = xx[124] * motionData[306];
7057 xx[295] = xx[294] - xx[305];
7058 xx[296] = xx[283];
7059 xx[297] = xx[284];
7060 xx[298] = xx[295];
7061 pm_math_cross3(xx + 142, xx + 296, xx + 299);
7062 xx[296] = (xx[283] * xx[68] + xx[299]) * xx[4] + xx[133] - motionData[306] +
7063 xx[8];
7064 xx[297] = motionData[305] + (xx[284] * xx[68] + xx[300]) * xx[4] + xx[66] +
7065 xx[6];
7066 xx[298] = (xx[295] * xx[68] + xx[301]) * xx[4] + xx[127];
7067 pm_math_quatXform(xx + 119, xx + 296, xx + 299);
7068 xx[294] = motionData[56];
7069 xx[295] = motionData[57];
7070 xx[296] = motionData[58];
7071 xx[297] = motionData[59];
7072 pm_math_quatCompose(xx + 169, xx + 294, xx + 322);
7073 xx[294] = xx[4] * (motionData[57] * motionData[59] - motionData[56] *
7074 motionData[58]);
7075 xx[295] = (motionData[56] * motionData[57] + motionData[58] * motionData[59]) *
7076 xx[4];
7077 xx[296] = xx[5] - (motionData[57] * motionData[57] + motionData[58] *
7078 motionData[58]) * xx[4];
7079 pm_math_cross3(xx + 294, xx + 24, xx + 316);
7080 pm_math_quatXform(xx + 322, xx + 316, xx + 294);
7081 xx[283] = xx[126] * motionData[61];
7082 xx[284] = xx[126] * motionData[60];
7083 xx[297] = xx[4] * (xx[283] * xx[126] - xx[125] * xx[284]) - motionData[61] +
7084 xx[148];
7085 xx[298] = motionData[60] - ((xx[125] * xx[283] + xx[284] * xx[126]) * xx[4] -
7086 xx[160]) - xx[137];
7087 xx[283] = xx[298] * motionData[220];
7088 xx[284] = xx[297] * motionData[220];
7089 xx[305] = xx[298] * motionData[218] - xx[297] * motionData[219];
7090 xx[316] = - xx[283];
7091 xx[317] = xx[284];
7092 xx[318] = xx[305];
7093 pm_math_cross3(xx + 173, xx + 316, xx + 322);
7094 xx[325] = motionData[224];
7095 xx[326] = motionData[225];
7096 xx[327] = motionData[226];
7097 xx[328] = motionData[227];
7098 xx[306] = 0.6123724356957949;
7099 xx[316] = xx[2] * state[34];
7100 xx[317] = sin(xx[316]);
7101 xx[318] = xx[306] * xx[317];
7102 xx[329] = cos(xx[316]);
7103 xx[316] = xx[306] * xx[329];
7104 xx[330] = xx[318] - xx[316];
7105 xx[331] = 0.3535533905932732;
7106 xx[332] = xx[331] * xx[329];
7107 xx[329] = xx[331] * xx[317];
7108 xx[317] = xx[332] + xx[329];
7109 xx[333] = - xx[317];
7110 xx[334] = xx[329] - xx[332];
7111 xx[329] = xx[318] + xx[316];
7112 xx[316] = - xx[329];
7113 xx[335] = xx[330];
7114 xx[336] = xx[333];
7115 xx[337] = xx[334];
7116 xx[338] = xx[316];
7117 pm_math_quatCompose(xx + 325, xx + 335, xx + 339);
7118 xx[318] = xx[6] * xx[342];
7119 xx[332] = xx[8] * xx[341] - xx[6] * xx[340];
7120 xx[335] = xx[318];
7121 xx[336] = - (xx[8] * xx[342]);
7122 xx[337] = xx[332];
7123 pm_math_cross3(xx + 340, xx + 335, xx + 343);
7124 xx[335] = xx[333];
7125 xx[336] = xx[334];
7126 xx[337] = xx[316];
7127 xx[316] = 1.121202762681406e-11;
7128 xx[333] = xx[329] * xx[316];
7129 xx[338] = 6.145027516349377e-13;
7130 xx[340] = xx[329] * xx[338];
7131 xx[329] = xx[338] * xx[334] - xx[317] * xx[316];
7132 xx[346] = xx[333];
7133 xx[347] = xx[340];
7134 xx[348] = xx[329];
7135 pm_math_cross3(xx + 335, xx + 346, xx + 349);
7136 xx[334] = xx[4] * (xx[349] + xx[333] * xx[330]) - xx[338];
7137 xx[335] = xx[316] + (xx[340] * xx[330] + xx[350]) * xx[4];
7138 xx[336] = (xx[330] * xx[329] + xx[351]) * xx[4];
7139 pm_math_quatXform(xx + 325, xx + 334, xx + 346);
7140 xx[316] = 0.04233709306330295;
7141 xx[317] = xx[2] * state[53];
7142 xx[329] = cos(xx[317]);
7143 xx[330] = 0.04233598682685397;
7144 xx[333] = sin(xx[317]);
7145 xx[317] = xx[316] * xx[329] + xx[330] * xx[333];
7146 xx[334] = 0.7058357201813958;
7147 xx[335] = 0.7058407546227096;
7148 xx[336] = xx[334] * xx[333] - xx[335] * xx[329];
7149 xx[337] = xx[334] * xx[329] + xx[335] * xx[333];
7150 xx[338] = xx[316] * xx[333] - xx[330] * xx[329];
7151 xx[349] = xx[317];
7152 xx[350] = xx[336];
7153 xx[351] = xx[337];
7154 xx[352] = xx[338];
7155 xx[353] = motionData[294];
7156 xx[354] = motionData[295];
7157 xx[355] = motionData[296];
7158 xx[356] = motionData[297];
7159 pm_math_quatCompose(xx + 349, xx + 353, xx + 357);
7160 xx[349] = xx[4] * (motionData[295] * motionData[297] - motionData[294] *
7161 motionData[296]);
7162 xx[350] = (motionData[294] * motionData[295] + motionData[296] * motionData
7163 [297]) * xx[4];
7164 xx[351] = xx[5] - (motionData[295] * motionData[295] + motionData[296] *
7165 motionData[296]) * xx[4];
7166 pm_math_cross3(xx + 349, xx + 208, xx + 352);
7167 pm_math_quatXform(xx + 357, xx + 352, xx + 349);
7168 xx[329] = xx[338] * motionData[298];
7169 xx[333] = xx[338] * motionData[299];
7170 xx[340] = xx[336] * motionData[298] + xx[337] * motionData[299];
7171 xx[352] = - xx[329];
7172 xx[353] = - xx[333];
7173 xx[354] = xx[340];
7174 pm_math_cross3(xx + 336, xx + 352, xx + 355);
7175 xx[341] = 0.02520954632904374;
7176 xx[352] = xx[336] * xx[341];
7177 xx[353] = xx[338] * xx[341];
7178 xx[354] = xx[2] * state[55];
7179 xx[358] = cos(xx[354]);
7180 xx[359] = sin(xx[354]);
7181 xx[360] = xx[358] * motionData[106] - xx[359] * motionData[107];
7182 xx[361] = - (xx[358] * motionData[105] + xx[359] * motionData[108]);
7183 xx[362] = xx[359] * motionData[105] - xx[358] * motionData[108];
7184 xx[363] = xx[359] * motionData[106] + xx[358] * motionData[107];
7185 xx[364] = motionData[119];
7186 xx[365] = motionData[120];
7187 xx[366] = motionData[121];
7188 xx[367] = motionData[122];
7189 pm_math_quatCompose(xx + 360, xx + 364, xx + 368);
7190 xx[360] = xx[4] * (motionData[120] * motionData[122] - motionData[119] *
7191 motionData[121]);
7192 xx[361] = (motionData[119] * motionData[120] + motionData[121] * motionData
7193 [122]) * xx[4];
7194 xx[362] = xx[5] - (motionData[120] * motionData[120] + motionData[121] *
7195 motionData[121]) * xx[4];
7196 pm_math_cross3(xx + 360, xx + 208, xx + 363);
7197 pm_math_quatXform(xx + 368, xx + 363, xx + 360);
7198 xx[354] = xx[359] * motionData[124] - xx[358] * motionData[123];
7199 xx[363] = 9.27756931389703e-12;
7200 xx[364] = 5.443558296964576e-12;
7201 xx[365] = xx[363] * xx[358] + xx[364] * xx[359];
7202 xx[366] = xx[4] * xx[359] * xx[354] - (motionData[124] + xx[4] * xx[365] * xx
7203 [359]) + xx[364];
7204 xx[367] = motionData[106];
7205 xx[368] = motionData[107];
7206 xx[369] = motionData[108];
7207 xx[359] = motionData[123] + xx[4] * xx[358] * xx[354] - xx[4] * xx[365] * xx
7208 [358] + xx[363];
7209 xx[354] = xx[359] * motionData[108];
7210 xx[358] = xx[366] * motionData[108];
7211 xx[363] = xx[359] * motionData[106] - xx[366] * motionData[107];
7212 xx[370] = - xx[354];
7213 xx[371] = xx[358];
7214 xx[372] = xx[363];
7215 pm_math_cross3(xx + 367, xx + 370, xx + 373);
7216 xx[367] = motionData[273];
7217 xx[368] = motionData[274];
7218 xx[369] = motionData[275];
7219 xx[370] = motionData[276];
7220 xx[364] = xx[55] * state[60] - xx[56] * state[57];
7221 xx[365] = xx[55] * state[59] + xx[56] * state[58];
7222 xx[371] = - xx[365];
7223 xx[372] = xx[56] * state[59] - xx[55] * state[58];
7224 xx[376] = - xx[372];
7225 xx[377] = xx[55] * state[57] + xx[56] * state[60];
7226 xx[378] = - xx[377];
7227 xx[379] = xx[364];
7228 xx[380] = xx[371];
7229 xx[381] = xx[376];
7230 xx[382] = xx[378];
7231 pm_math_quatCompose(xx + 367, xx + 379, xx + 383);
7232 pm_math_quatXform(xx + 383, xx + 247, xx + 387);
7233 pm_math_quatXform(xx + 379, xx + 99, xx + 390);
7234 pm_math_quatXform(xx + 367, xx + 390, xx + 393);
7235 pm_math_quatXform(xx + 383, xx + 253, xx + 390);
7236 pm_math_quatXform(xx + 379, xx + 105, xx + 396);
7237 pm_math_quatXform(xx + 367, xx + 396, xx + 379);
7238 xx[382] = xx[191] * xx[386];
7239 xx[396] = xx[191] * xx[384] + xx[192] * xx[385];
7240 xx[397] = - xx[382];
7241 xx[398] = - (xx[192] * xx[386]);
7242 xx[399] = xx[396];
7243 pm_math_cross3(xx + 384, xx + 397, xx + 400);
7244 xx[397] = xx[371];
7245 xx[398] = xx[376];
7246 xx[399] = xx[378];
7247 xx[371] = xx[86] * xx[377];
7248 xx[376] = xx[112] * xx[377];
7249 xx[377] = xx[86] * xx[365] + xx[372] * xx[112];
7250 xx[403] = xx[371];
7251 xx[404] = xx[376];
7252 xx[405] = - xx[377];
7253 pm_math_cross3(xx + 397, xx + 403, xx + 406);
7254 xx[397] = xx[4] * (xx[406] + xx[371] * xx[364]) - xx[112];
7255 xx[398] = xx[86] + (xx[376] * xx[364] + xx[407]) * xx[4];
7256 xx[399] = (xx[408] - xx[377] * xx[364]) * xx[4];
7257 pm_math_quatXform(xx + 367, xx + 397, xx + 376);
7258 xx[367] = motionData[378];
7259 xx[368] = motionData[379];
7260 xx[369] = motionData[380];
7261 xx[370] = motionData[381];
7262 pm_math_quatCompose(xx + 12, xx + 367, xx + 403);
7263 xx[367] = xx[4] * (motionData[378] * motionData[380] - motionData[379] *
7264 motionData[381]);
7265 xx[368] = - ((motionData[378] * motionData[379] + motionData[380] *
7266 motionData[381]) * xx[4]);
7267 xx[369] = (motionData[379] * motionData[379] + motionData[380] * motionData
7268 [380]) * xx[4] - xx[5];
7269 pm_math_cross3(xx + 367, xx + 24, xx + 370);
7270 pm_math_quatXform(xx + 403, xx + 370, xx + 367);
7271 xx[364] = xx[7] * motionData[382];
7272 xx[365] = xx[7] * motionData[383];
7273 xx[370] = xx[11] * motionData[383] - xx[9] * motionData[382];
7274 xx[397] = - xx[364];
7275 xx[398] = - xx[365];
7276 xx[399] = - xx[370];
7277 pm_math_cross3(xx + 20, xx + 397, xx + 403);
7278 xx[406] = motionData[371];
7279 xx[407] = motionData[372];
7280 xx[408] = motionData[373];
7281 xx[409] = motionData[374];
7282 pm_math_quatCompose(xx + 37, xx + 406, xx + 410);
7283 xx[397] = xx[4] * (motionData[372] * motionData[374] - motionData[371] *
7284 motionData[373]);
7285 xx[398] = (motionData[371] * motionData[372] + motionData[373] * motionData
7286 [374]) * xx[4];
7287 xx[399] = xx[5] - (motionData[372] * motionData[372] + motionData[373] *
7288 motionData[373]) * xx[4];
7289 pm_math_cross3(xx + 397, xx + 24, xx + 406);
7290 pm_math_quatXform(xx + 410, xx + 406, xx + 397);
7291 xx[371] = xx[36] * motionData[376] - xx[35] * motionData[375];
7292 xx[372] = xx[4] * xx[36] * xx[371] - (motionData[376] + xx[47]) - xx[45];
7293 xx[384] = motionData[375] + xx[4] * xx[35] * xx[371] - xx[52] + xx[44];
7294 xx[371] = xx[384] * motionData[17];
7295 xx[385] = xx[372] * motionData[17];
7296 xx[406] = xx[384] * motionData[15] - xx[372] * motionData[16];
7297 xx[407] = - xx[371];
7298 xx[408] = xx[385];
7299 xx[409] = xx[406];
7300 pm_math_cross3(xx + 49, xx + 407, xx + 410);
7301 xx[413] = motionData[364];
7302 xx[414] = motionData[365];
7303 xx[415] = motionData[366];
7304 xx[416] = motionData[367];
7305 pm_math_quatCompose(xx + 75, xx + 413, xx + 417);
7306 xx[407] = motionData[365];
7307 xx[408] = motionData[366];
7308 xx[409] = motionData[367];
7309 xx[413] = xx[82] * motionData[367];
7310 xx[414] = xx[82] * motionData[365] + motionData[366];
7311 xx[421] = xx[413];
7312 xx[422] = motionData[367];
7313 xx[423] = - xx[414];
7314 pm_math_cross3(xx + 407, xx + 421, xx + 424);
7315 xx[415] = motionData[364] * motionData[367];
7316 xx[421] = xx[5] + (xx[424] - xx[413] * motionData[364]) * xx[4];
7317 xx[422] = xx[4] * (xx[425] - xx[415]) - xx[82];
7318 xx[423] = xx[4] * (xx[426] + xx[414] * motionData[364]);
7319 pm_math_cross3(xx + 421, xx + 24, xx + 424);
7320 pm_math_quatXform(xx + 417, xx + 424, xx + 421);
7321 xx[414] = - (xx[82] * motionData[370]);
7322 xx[424] = xx[414];
7323 xx[425] = - motionData[370];
7324 xx[426] = motionData[369] + xx[82] * motionData[368];
7325 pm_math_quatXform(xx + 71, xx + 424, xx + 427);
7326 xx[424] = xx[427] + xx[102];
7327 xx[425] = xx[428] + xx[103];
7328 xx[426] = xx[429] + xx[104];
7329 pm_math_quatXform(xx + 61, xx + 424, xx + 427);
7330 xx[416] = motionData[365] - xx[82] * motionData[366];
7331 xx[424] = - motionData[367];
7332 xx[425] = xx[413];
7333 xx[426] = xx[416];
7334 pm_math_cross3(xx + 407, xx + 424, xx + 430);
7335 xx[407] = xx[82] + (xx[415] + xx[430]) * xx[4];
7336 xx[408] = xx[5] + xx[4] * (xx[431] - xx[82] * xx[415]);
7337 xx[409] = xx[4] * (xx[432] - xx[416] * motionData[364]);
7338 pm_math_cross3(xx + 407, xx + 24, xx + 424);
7339 pm_math_quatXform(xx + 417, xx + 424, xx + 407);
7340 xx[424] = motionData[370];
7341 xx[425] = xx[414];
7342 xx[426] = xx[82] * motionData[369] - motionData[368];
7343 pm_math_quatXform(xx + 71, xx + 424, xx + 413);
7344 xx[424] = xx[413] + xx[90];
7345 xx[425] = xx[414] + xx[91];
7346 xx[426] = xx[415] + xx[92];
7347 pm_math_quatXform(xx + 61, xx + 424, xx + 413);
7348 xx[424] = xx[4] * (motionData[365] * motionData[367] - motionData[364] *
7349 motionData[366]);
7350 xx[425] = (motionData[364] * motionData[365] + motionData[366] * motionData
7351 [367]) * xx[4];
7352 xx[426] = xx[5] - (motionData[365] * motionData[365] + motionData[366] *
7353 motionData[366]) * xx[4];
7354 pm_math_cross3(xx + 424, xx + 24, xx + 430);
7355 pm_math_quatXform(xx + 417, xx + 430, xx + 424);
7356 xx[416] = xx[69] * motionData[368];
7357 xx[417] = xx[69] * motionData[369];
7358 xx[418] = xx[65] * motionData[368] + xx[67] * motionData[369];
7359 xx[430] = xx[416];
7360 xx[431] = xx[417];
7361 xx[432] = - xx[418];
7362 pm_math_cross3(xx + 83, xx + 430, xx + 433);
7363 xx[430] = xx[4] * (xx[433] + xx[416] * xx[57]) + xx[118] - motionData[369] -
7364 xx[112];
7365 xx[431] = motionData[368] + xx[4] * (xx[434] + xx[417] * xx[57]) + xx[111] +
7366 xx[86];
7367 xx[432] = (xx[435] - xx[418] * xx[57]) * xx[4] + xx[113];
7368 pm_math_quatXform(xx + 61, xx + 430, xx + 416);
7369 xx[430] = motionData[357];
7370 xx[431] = motionData[358];
7371 xx[432] = motionData[359];
7372 xx[433] = motionData[360];
7373 pm_math_quatCompose(xx + 129, xx + 430, xx + 434);
7374 xx[419] = motionData[359] * motionData[359];
7375 xx[420] = motionData[360] * motionData[360];
7376 xx[430] = motionData[358] * motionData[359];
7377 xx[431] = motionData[357] * motionData[360];
7378 xx[432] = motionData[357] * motionData[359];
7379 xx[433] = motionData[358] * motionData[360];
7380 xx[438] = xx[5] - (xx[419] + xx[420]) * xx[4];
7381 xx[439] = xx[4] * (xx[430] - xx[431]);
7382 xx[440] = (xx[432] + xx[433]) * xx[4];
7383 pm_math_cross3(xx + 438, xx + 24, xx + 441);
7384 pm_math_quatXform(xx + 434, xx + 441, xx + 438);
7385 xx[441] = xx[117] * motionData[362];
7386 xx[442] = xx[124] * motionData[363];
7387 xx[443] = xx[441] + xx[442];
7388 xx[444] = xx[70] * motionData[362];
7389 xx[445] = xx[70] * motionData[363];
7390 xx[446] = - xx[443];
7391 xx[447] = - xx[444];
7392 xx[448] = - xx[445];
7393 pm_math_cross3(xx + 142, xx + 446, xx + 449);
7394 xx[446] = xx[4] * (xx[449] - xx[443] * xx[68]) + xx[156];
7395 xx[447] = xx[4] * (xx[450] - xx[444] * xx[68]) + xx[150] - motionData[363] -
7396 xx[19];
7397 xx[448] = motionData[362] + xx[4] * (xx[451] - xx[445] * xx[68]) + xx[154] -
7398 xx[8];
7399 pm_math_quatXform(xx + 119, xx + 446, xx + 443);
7400 xx[446] = motionData[358] * motionData[358];
7401 xx[447] = motionData[359] * motionData[360];
7402 xx[448] = motionData[357] * motionData[358];
7403 xx[449] = (xx[431] + xx[430]) * xx[4];
7404 xx[450] = xx[5] - (xx[420] + xx[446]) * xx[4];
7405 xx[451] = xx[4] * (xx[447] - xx[448]);
7406 pm_math_cross3(xx + 449, xx + 24, xx + 452);
7407 pm_math_quatXform(xx + 434, xx + 452, xx + 449);
7408 xx[420] = xx[117] * motionData[361];
7409 xx[430] = xx[70] * motionData[361];
7410 xx[431] = xx[430] - xx[442];
7411 xx[442] = xx[117] * motionData[363];
7412 xx[452] = xx[420];
7413 xx[453] = xx[431];
7414 xx[454] = xx[442];
7415 pm_math_cross3(xx + 142, xx + 452, xx + 455);
7416 xx[452] = motionData[363] + (xx[420] * xx[68] + xx[455]) * xx[4] + xx[162] +
7417 xx[19];
7418 xx[453] = (xx[431] * xx[68] + xx[456]) * xx[4] + xx[155];
7419 xx[454] = (xx[442] * xx[68] + xx[457]) * xx[4] + xx[161] - motionData[361] -
7420 xx[6];
7421 pm_math_quatXform(xx + 119, xx + 452, xx + 455);
7422 xx[452] = xx[4] * (xx[433] - xx[432]);
7423 xx[453] = (xx[448] + xx[447]) * xx[4];
7424 xx[454] = xx[5] - (xx[446] + xx[419]) * xx[4];
7425 pm_math_cross3(xx + 452, xx + 24, xx + 431);
7426 pm_math_quatXform(xx + 434, xx + 431, xx + 446);
7427 xx[419] = xx[124] * motionData[361];
7428 xx[420] = xx[124] * motionData[362];
7429 xx[431] = xx[430] - xx[441];
7430 xx[432] = xx[419];
7431 xx[433] = xx[420];
7432 xx[434] = xx[431];
7433 pm_math_cross3(xx + 142, xx + 432, xx + 435);
7434 xx[432] = (xx[419] * xx[68] + xx[435]) * xx[4] + xx[133] - motionData[362] +
7435 xx[8];
7436 xx[433] = motionData[361] + (xx[420] * xx[68] + xx[436]) * xx[4] + xx[66] +
7437 xx[6];
7438 xx[434] = (xx[431] * xx[68] + xx[437]) * xx[4] + xx[127];
7439 pm_math_quatXform(xx + 119, xx + 432, xx + 435);
7440 xx[430] = motionData[63];
7441 xx[431] = motionData[64];
7442 xx[432] = motionData[65];
7443 xx[433] = motionData[66];
7444 pm_math_quatCompose(xx + 169, xx + 430, xx + 458);
7445 xx[430] = xx[4] * (motionData[64] * motionData[66] - motionData[63] *
7446 motionData[65]);
7447 xx[431] = (motionData[63] * motionData[64] + motionData[65] * motionData[66]) *
7448 xx[4];
7449 xx[432] = xx[5] - (motionData[64] * motionData[64] + motionData[65] *
7450 motionData[65]) * xx[4];
7451 pm_math_cross3(xx + 430, xx + 24, xx + 452);
7452 pm_math_quatXform(xx + 458, xx + 452, xx + 430);
7453 xx[419] = xx[126] * motionData[68];
7454 xx[420] = xx[126] * motionData[67];
7455 xx[433] = xx[4] * (xx[419] * xx[126] - xx[125] * xx[420]) - motionData[68] +
7456 xx[148];
7457 xx[434] = motionData[67] - ((xx[125] * xx[419] + xx[420] * xx[126]) * xx[4] -
7458 xx[160]) - xx[137];
7459 xx[419] = xx[434] * motionData[220];
7460 xx[420] = xx[433] * motionData[220];
7461 xx[441] = xx[434] * motionData[218] - xx[433] * motionData[219];
7462 xx[452] = - xx[419];
7463 xx[453] = xx[420];
7464 xx[454] = xx[441];
7465 pm_math_cross3(xx + 173, xx + 452, xx + 458);
7466 xx[442] = 0.3535533905932758;
7467 xx[452] = xx[2] * state[36];
7468 xx[453] = cos(xx[452]);
7469 xx[454] = xx[442] * xx[453];
7470 xx[461] = sin(xx[452]);
7471 xx[452] = xx[442] * xx[461];
7472 xx[462] = xx[454] + xx[452];
7473 xx[463] = 0.6123724356957934;
7474 xx[464] = xx[463] * xx[461];
7475 xx[461] = xx[463] * xx[453];
7476 xx[453] = xx[464] - xx[461];
7477 xx[465] = xx[461] + xx[464];
7478 xx[461] = - xx[465];
7479 xx[464] = xx[452] - xx[454];
7480 xx[466] = - xx[462];
7481 xx[467] = xx[453];
7482 xx[468] = xx[461];
7483 xx[469] = xx[464];
7484 pm_math_quatCompose(xx + 325, xx + 466, xx + 470);
7485 xx[452] = xx[6] * xx[473];
7486 xx[454] = xx[6] * xx[471] - xx[8] * xx[472];
7487 xx[466] = - xx[452];
7488 xx[467] = xx[8] * xx[473];
7489 xx[468] = xx[454];
7490 pm_math_cross3(xx + 471, xx + 466, xx + 474);
7491 xx[466] = 3.80025733104361e-12;
7492 xx[467] = xx[453];
7493 xx[468] = xx[461];
7494 xx[469] = xx[464];
7495 xx[461] = 3.881762117297072e-12;
7496 xx[471] = xx[461] * xx[464];
7497 xx[472] = xx[466] * xx[464];
7498 xx[464] = xx[461] * xx[453] + xx[465] * xx[466];
7499 xx[477] = - xx[471];
7500 xx[478] = xx[472];
7501 xx[479] = xx[464];
7502 pm_math_cross3(xx + 467, xx + 477, xx + 480);
7503 xx[467] = xx[466] + xx[4] * (xx[480] + xx[462] * xx[471]);
7504 xx[468] = xx[461] + (xx[481] - xx[462] * xx[472]) * xx[4];
7505 xx[469] = (xx[482] - xx[462] * xx[464]) * xx[4];
7506 pm_math_quatXform(xx + 325, xx + 467, xx + 464);
7507 xx[453] = 0.3162553791961485;
7508 xx[461] = xx[2] * state[75];
7509 xx[462] = cos(xx[461]);
7510 xx[467] = 0.3162538200043588;
7511 xx[468] = sin(xx[461]);
7512 xx[461] = xx[453] * xx[462] - xx[467] * xx[468];
7513 xx[469] = 0.6324445710612965;
7514 xx[471] = 0.6324396579890005;
7515 xx[472] = xx[469] * xx[462] + xx[471] * xx[468];
7516 xx[477] = xx[469] * xx[468] - xx[471] * xx[462];
7517 xx[469] = xx[467] * xx[462] + xx[453] * xx[468];
7518 xx[453] = - xx[469];
7519 xx[478] = xx[461];
7520 xx[479] = xx[472];
7521 xx[480] = xx[477];
7522 xx[481] = xx[453];
7523 xx[482] = motionData[350];
7524 xx[483] = motionData[351];
7525 xx[484] = motionData[352];
7526 xx[485] = motionData[353];
7527 pm_math_quatCompose(xx + 478, xx + 482, xx + 486);
7528 xx[478] = xx[4] * (motionData[350] * motionData[352] - motionData[351] *
7529 motionData[353]);
7530 xx[479] = - ((motionData[350] * motionData[351] + motionData[352] *
7531 motionData[353]) * xx[4]);
7532 xx[480] = (motionData[351] * motionData[351] + motionData[352] * motionData
7533 [352]) * xx[4] - xx[5];
7534 pm_math_cross3(xx + 478, xx + 208, xx + 481);
7535 pm_math_quatXform(xx + 486, xx + 481, xx + 478);
7536 xx[481] = xx[472];
7537 xx[482] = xx[477];
7538 xx[483] = xx[453];
7539 xx[453] = xx[469] * motionData[354];
7540 xx[462] = xx[469] * motionData[355];
7541 xx[467] = xx[472] * motionData[354] + xx[477] * motionData[355];
7542 xx[484] = - xx[453];
7543 xx[485] = - xx[462];
7544 xx[486] = - xx[467];
7545 pm_math_cross3(xx + 481, xx + 484, xx + 487);
7546 xx[468] = xx[27] * xx[472];
7547 xx[471] = xx[27] * xx[469];
7548 xx[481] = xx[2] * state[77];
7549 xx[482] = cos(xx[481]);
7550 xx[483] = sin(xx[481]);
7551 xx[490] = xx[482] * motionData[148] - xx[483] * motionData[149];
7552 xx[491] = - (xx[482] * motionData[147] + xx[483] * motionData[150]);
7553 xx[492] = xx[483] * motionData[147] - xx[482] * motionData[150];
7554 xx[493] = xx[483] * motionData[148] + xx[482] * motionData[149];
7555 xx[494] = motionData[161];
7556 xx[495] = motionData[162];
7557 xx[496] = motionData[163];
7558 xx[497] = motionData[164];
7559 pm_math_quatCompose(xx + 490, xx + 494, xx + 498);
7560 xx[484] = xx[4] * (motionData[162] * motionData[164] - motionData[161] *
7561 motionData[163]);
7562 xx[485] = (motionData[161] * motionData[162] + motionData[163] * motionData
7563 [164]) * xx[4];
7564 xx[486] = xx[5] - (motionData[162] * motionData[162] + motionData[163] *
7565 motionData[163]) * xx[4];
7566 pm_math_cross3(xx + 484, xx + 208, xx + 490);
7567 pm_math_quatXform(xx + 498, xx + 490, xx + 484);
7568 xx[481] = xx[483] * motionData[166] - xx[482] * motionData[165];
7569 xx[490] = 5.157931604049537e-12;
7570 xx[491] = 9.862118968695376e-13;
7571 xx[492] = xx[490] * xx[482] + xx[491] * xx[483];
7572 xx[493] = xx[4] * xx[483] * xx[481] - (motionData[166] - xx[4] * xx[492] * xx
7573 [483]) - xx[491];
7574 xx[494] = motionData[148];
7575 xx[495] = motionData[149];
7576 xx[496] = motionData[150];
7577 xx[483] = motionData[165] + xx[4] * xx[482] * xx[481] + xx[4] * xx[492] * xx
7578 [482] - xx[490];
7579 xx[481] = xx[483] * motionData[150];
7580 xx[482] = xx[493] * motionData[150];
7581 xx[490] = xx[483] * motionData[148] - xx[493] * motionData[149];
7582 xx[497] = - xx[481];
7583 xx[498] = xx[482];
7584 xx[499] = xx[490];
7585 pm_math_cross3(xx + 494, xx + 497, xx + 500);
7586 xx[494] = motionData[329];
7587 xx[495] = motionData[330];
7588 xx[496] = motionData[331];
7589 xx[497] = motionData[332];
7590 xx[491] = xx[55] * state[82] - xx[56] * state[79];
7591 xx[492] = xx[55] * state[81] + xx[56] * state[80];
7592 xx[498] = - xx[492];
7593 xx[499] = xx[56] * state[81] - xx[55] * state[80];
7594 xx[503] = - xx[499];
7595 xx[504] = xx[55] * state[79] + xx[56] * state[82];
7596 xx[505] = - xx[504];
7597 xx[506] = xx[491];
7598 xx[507] = xx[498];
7599 xx[508] = xx[503];
7600 xx[509] = xx[505];
7601 pm_math_quatCompose(xx + 494, xx + 506, xx + 510);
7602 pm_math_quatXform(xx + 510, xx + 247, xx + 514);
7603 pm_math_quatXform(xx + 506, xx + 99, xx + 517);
7604 pm_math_quatXform(xx + 494, xx + 517, xx + 520);
7605 pm_math_quatXform(xx + 510, xx + 253, xx + 517);
7606 pm_math_quatXform(xx + 506, xx + 105, xx + 523);
7607 pm_math_quatXform(xx + 494, xx + 523, xx + 506);
7608 xx[509] = xx[191] * xx[513];
7609 xx[523] = xx[191] * xx[511] + xx[192] * xx[512];
7610 xx[524] = - xx[509];
7611 xx[525] = - (xx[192] * xx[513]);
7612 xx[526] = xx[523];
7613 pm_math_cross3(xx + 511, xx + 524, xx + 527);
7614 xx[524] = xx[498];
7615 xx[525] = xx[503];
7616 xx[526] = xx[505];
7617 xx[498] = xx[86] * xx[504];
7618 xx[503] = xx[112] * xx[504];
7619 xx[504] = xx[86] * xx[492] + xx[499] * xx[112];
7620 xx[530] = xx[498];
7621 xx[531] = xx[503];
7622 xx[532] = - xx[504];
7623 pm_math_cross3(xx + 524, xx + 530, xx + 533);
7624 xx[524] = xx[4] * (xx[533] + xx[498] * xx[491]) - xx[112];
7625 xx[525] = xx[86] + (xx[503] * xx[491] + xx[534]) * xx[4];
7626 xx[526] = (xx[535] - xx[504] * xx[491]) * xx[4];
7627 pm_math_quatXform(xx + 494, xx + 524, xx + 503);
7628 xx[494] = motionData[434];
7629 xx[495] = motionData[435];
7630 xx[496] = motionData[436];
7631 xx[497] = motionData[437];
7632 pm_math_quatCompose(xx + 12, xx + 494, xx + 530);
7633 xx[494] = xx[4] * (motionData[434] * motionData[436] - motionData[435] *
7634 motionData[437]);
7635 xx[495] = - ((motionData[434] * motionData[435] + motionData[436] *
7636 motionData[437]) * xx[4]);
7637 xx[496] = (motionData[435] * motionData[435] + motionData[436] * motionData
7638 [436]) * xx[4] - xx[5];
7639 pm_math_cross3(xx + 494, xx + 24, xx + 497);
7640 pm_math_quatXform(xx + 530, xx + 497, xx + 494);
7641 xx[491] = xx[7] * motionData[438];
7642 xx[492] = xx[7] * motionData[439];
7643 xx[497] = xx[11] * motionData[439] - xx[9] * motionData[438];
7644 xx[524] = - xx[491];
7645 xx[525] = - xx[492];
7646 xx[526] = - xx[497];
7647 pm_math_cross3(xx + 20, xx + 524, xx + 530);
7648 xx[533] = motionData[427];
7649 xx[534] = motionData[428];
7650 xx[535] = motionData[429];
7651 xx[536] = motionData[430];
7652 pm_math_quatCompose(xx + 37, xx + 533, xx + 537);
7653 xx[524] = xx[4] * (motionData[428] * motionData[430] - motionData[427] *
7654 motionData[429]);
7655 xx[525] = (motionData[427] * motionData[428] + motionData[429] * motionData
7656 [430]) * xx[4];
7657 xx[526] = xx[5] - (motionData[428] * motionData[428] + motionData[429] *
7658 motionData[429]) * xx[4];
7659 pm_math_cross3(xx + 524, xx + 24, xx + 533);
7660 pm_math_quatXform(xx + 537, xx + 533, xx + 524);
7661 xx[498] = xx[36] * motionData[432] - xx[35] * motionData[431];
7662 xx[499] = xx[4] * xx[36] * xx[498] - (motionData[432] + xx[47]) - xx[45];
7663 xx[511] = motionData[431] + xx[4] * xx[35] * xx[498] - xx[52] + xx[44];
7664 xx[498] = xx[511] * motionData[17];
7665 xx[512] = xx[499] * motionData[17];
7666 xx[533] = xx[511] * motionData[15] - xx[499] * motionData[16];
7667 xx[534] = - xx[498];
7668 xx[535] = xx[512];
7669 xx[536] = xx[533];
7670 pm_math_cross3(xx + 49, xx + 534, xx + 537);
7671 xx[540] = motionData[420];
7672 xx[541] = motionData[421];
7673 xx[542] = motionData[422];
7674 xx[543] = motionData[423];
7675 pm_math_quatCompose(xx + 75, xx + 540, xx + 544);
7676 xx[534] = motionData[421];
7677 xx[535] = motionData[422];
7678 xx[536] = motionData[423];
7679 xx[540] = xx[82] * motionData[423];
7680 xx[541] = xx[82] * motionData[421] + motionData[422];
7681 xx[548] = xx[540];
7682 xx[549] = motionData[423];
7683 xx[550] = - xx[541];
7684 pm_math_cross3(xx + 534, xx + 548, xx + 551);
7685 xx[542] = motionData[420] * motionData[423];
7686 xx[548] = xx[5] + (xx[551] - xx[540] * motionData[420]) * xx[4];
7687 xx[549] = xx[4] * (xx[552] - xx[542]) - xx[82];
7688 xx[550] = xx[4] * (xx[553] + xx[541] * motionData[420]);
7689 pm_math_cross3(xx + 548, xx + 24, xx + 551);
7690 pm_math_quatXform(xx + 544, xx + 551, xx + 548);
7691 xx[541] = - (xx[82] * motionData[426]);
7692 xx[551] = xx[541];
7693 xx[552] = - motionData[426];
7694 xx[553] = motionData[425] + xx[82] * motionData[424];
7695 pm_math_quatXform(xx + 71, xx + 551, xx + 554);
7696 xx[551] = xx[554] + xx[102];
7697 xx[552] = xx[555] + xx[103];
7698 xx[553] = xx[556] + xx[104];
7699 pm_math_quatXform(xx + 61, xx + 551, xx + 554);
7700 xx[543] = motionData[421] - xx[82] * motionData[422];
7701 xx[551] = - motionData[423];
7702 xx[552] = xx[540];
7703 xx[553] = xx[543];
7704 pm_math_cross3(xx + 534, xx + 551, xx + 557);
7705 xx[534] = xx[82] + (xx[542] + xx[557]) * xx[4];
7706 xx[535] = xx[5] + xx[4] * (xx[558] - xx[82] * xx[542]);
7707 xx[536] = xx[4] * (xx[559] - xx[543] * motionData[420]);
7708 pm_math_cross3(xx + 534, xx + 24, xx + 551);
7709 pm_math_quatXform(xx + 544, xx + 551, xx + 534);
7710 xx[551] = motionData[426];
7711 xx[552] = xx[541];
7712 xx[553] = xx[82] * motionData[425] - motionData[424];
7713 pm_math_quatXform(xx + 71, xx + 551, xx + 540);
7714 xx[551] = xx[540] + xx[90];
7715 xx[552] = xx[541] + xx[91];
7716 xx[553] = xx[542] + xx[92];
7717 pm_math_quatXform(xx + 61, xx + 551, xx + 540);
7718 xx[551] = xx[4] * (motionData[421] * motionData[423] - motionData[420] *
7719 motionData[422]);
7720 xx[552] = (motionData[420] * motionData[421] + motionData[422] * motionData
7721 [423]) * xx[4];
7722 xx[553] = xx[5] - (motionData[421] * motionData[421] + motionData[422] *
7723 motionData[422]) * xx[4];
7724 pm_math_cross3(xx + 551, xx + 24, xx + 557);
7725 pm_math_quatXform(xx + 544, xx + 557, xx + 551);
7726 xx[543] = xx[69] * motionData[424];
7727 xx[544] = xx[69] * motionData[425];
7728 xx[545] = xx[65] * motionData[424] + xx[67] * motionData[425];
7729 xx[557] = xx[543];
7730 xx[558] = xx[544];
7731 xx[559] = - xx[545];
7732 pm_math_cross3(xx + 83, xx + 557, xx + 560);
7733 xx[557] = xx[4] * (xx[560] + xx[543] * xx[57]) + xx[118] - motionData[425] -
7734 xx[112];
7735 xx[558] = motionData[424] + xx[4] * (xx[561] + xx[544] * xx[57]) + xx[111] +
7736 xx[86];
7737 xx[559] = (xx[562] - xx[545] * xx[57]) * xx[4] + xx[113];
7738 pm_math_quatXform(xx + 61, xx + 557, xx + 543);
7739 xx[557] = motionData[413];
7740 xx[558] = motionData[414];
7741 xx[559] = motionData[415];
7742 xx[560] = motionData[416];
7743 pm_math_quatCompose(xx + 129, xx + 557, xx + 561);
7744 xx[546] = motionData[415] * motionData[415];
7745 xx[547] = motionData[416] * motionData[416];
7746 xx[557] = motionData[414] * motionData[415];
7747 xx[558] = motionData[413] * motionData[416];
7748 xx[559] = motionData[413] * motionData[415];
7749 xx[560] = motionData[414] * motionData[416];
7750 xx[565] = xx[5] - (xx[546] + xx[547]) * xx[4];
7751 xx[566] = xx[4] * (xx[557] - xx[558]);
7752 xx[567] = (xx[559] + xx[560]) * xx[4];
7753 pm_math_cross3(xx + 565, xx + 24, xx + 568);
7754 pm_math_quatXform(xx + 561, xx + 568, xx + 565);
7755 xx[568] = xx[117] * motionData[418];
7756 xx[569] = xx[124] * motionData[419];
7757 xx[570] = xx[568] + xx[569];
7758 xx[571] = xx[70] * motionData[418];
7759 xx[572] = xx[70] * motionData[419];
7760 xx[573] = - xx[570];
7761 xx[574] = - xx[571];
7762 xx[575] = - xx[572];
7763 pm_math_cross3(xx + 142, xx + 573, xx + 576);
7764 xx[573] = xx[4] * (xx[576] - xx[570] * xx[68]) + xx[156];
7765 xx[574] = xx[4] * (xx[577] - xx[571] * xx[68]) + xx[150] - motionData[419] -
7766 xx[19];
7767 xx[575] = motionData[418] + xx[4] * (xx[578] - xx[572] * xx[68]) + xx[154] -
7768 xx[8];
7769 pm_math_quatXform(xx + 119, xx + 573, xx + 570);
7770 xx[573] = motionData[414] * motionData[414];
7771 xx[574] = motionData[415] * motionData[416];
7772 xx[575] = motionData[413] * motionData[414];
7773 xx[576] = (xx[558] + xx[557]) * xx[4];
7774 xx[577] = xx[5] - (xx[547] + xx[573]) * xx[4];
7775 xx[578] = xx[4] * (xx[574] - xx[575]);
7776 pm_math_cross3(xx + 576, xx + 24, xx + 579);
7777 pm_math_quatXform(xx + 561, xx + 579, xx + 576);
7778 xx[547] = xx[117] * motionData[417];
7779 xx[557] = xx[70] * motionData[417];
7780 xx[558] = xx[557] - xx[569];
7781 xx[569] = xx[117] * motionData[419];
7782 xx[579] = xx[547];
7783 xx[580] = xx[558];
7784 xx[581] = xx[569];
7785 pm_math_cross3(xx + 142, xx + 579, xx + 582);
7786 xx[579] = motionData[419] + (xx[547] * xx[68] + xx[582]) * xx[4] + xx[162] +
7787 xx[19];
7788 xx[580] = (xx[558] * xx[68] + xx[583]) * xx[4] + xx[155];
7789 xx[581] = (xx[569] * xx[68] + xx[584]) * xx[4] + xx[161] - motionData[417] -
7790 xx[6];
7791 pm_math_quatXform(xx + 119, xx + 579, xx + 582);
7792 xx[579] = xx[4] * (xx[560] - xx[559]);
7793 xx[580] = (xx[575] + xx[574]) * xx[4];
7794 xx[581] = xx[5] - (xx[573] + xx[546]) * xx[4];
7795 pm_math_cross3(xx + 579, xx + 24, xx + 558);
7796 pm_math_quatXform(xx + 561, xx + 558, xx + 573);
7797 xx[546] = xx[124] * motionData[417];
7798 xx[547] = xx[124] * motionData[418];
7799 xx[558] = xx[557] - xx[568];
7800 xx[559] = xx[546];
7801 xx[560] = xx[547];
7802 xx[561] = xx[558];
7803 pm_math_cross3(xx + 142, xx + 559, xx + 562);
7804 xx[559] = (xx[546] * xx[68] + xx[562]) * xx[4] + xx[133] - motionData[418] +
7805 xx[8];
7806 xx[560] = motionData[417] + (xx[547] * xx[68] + xx[563]) * xx[4] + xx[66] +
7807 xx[6];
7808 xx[561] = (xx[558] * xx[68] + xx[564]) * xx[4] + xx[127];
7809 pm_math_quatXform(xx + 119, xx + 559, xx + 562);
7810 xx[557] = motionData[70];
7811 xx[558] = motionData[71];
7812 xx[559] = motionData[72];
7813 xx[560] = motionData[73];
7814 pm_math_quatCompose(xx + 169, xx + 557, xx + 585);
7815 xx[557] = xx[4] * (motionData[71] * motionData[73] - motionData[70] *
7816 motionData[72]);
7817 xx[558] = (motionData[70] * motionData[71] + motionData[72] * motionData[73]) *
7818 xx[4];
7819 xx[559] = xx[5] - (motionData[71] * motionData[71] + motionData[72] *
7820 motionData[72]) * xx[4];
7821 pm_math_cross3(xx + 557, xx + 24, xx + 579);
7822 pm_math_quatXform(xx + 585, xx + 579, xx + 557);
7823 xx[546] = xx[126] * motionData[75];
7824 xx[547] = xx[126] * motionData[74];
7825 xx[560] = xx[4] * (xx[546] * xx[126] - xx[125] * xx[547]) - motionData[75] +
7826 xx[148];
7827 xx[561] = motionData[74] - ((xx[125] * xx[546] + xx[547] * xx[126]) * xx[4] -
7828 xx[160]) - xx[137];
7829 xx[546] = xx[561] * motionData[220];
7830 xx[547] = xx[560] * motionData[220];
7831 xx[568] = xx[561] * motionData[218] - xx[560] * motionData[219];
7832 xx[579] = - xx[546];
7833 xx[580] = xx[547];
7834 xx[581] = xx[568];
7835 pm_math_cross3(xx + 173, xx + 579, xx + 585);
7836 xx[569] = xx[2] * state[38];
7837 xx[579] = cos(xx[569]);
7838 xx[580] = xx[442] * xx[579];
7839 xx[581] = sin(xx[569]);
7840 xx[569] = xx[442] * xx[581];
7841 xx[442] = xx[580] + xx[569];
7842 xx[588] = xx[463] * xx[579];
7843 xx[579] = xx[463] * xx[581];
7844 xx[463] = xx[588] - xx[579];
7845 xx[581] = xx[588] + xx[579];
7846 xx[579] = xx[580] - xx[569];
7847 xx[588] = xx[442];
7848 xx[589] = xx[463];
7849 xx[590] = xx[581];
7850 xx[591] = xx[579];
7851 pm_math_quatCompose(xx + 325, xx + 588, xx + 592);
7852 xx[569] = xx[6] * xx[595];
7853 xx[580] = xx[6] * xx[593] - xx[8] * xx[594];
7854 xx[588] = - xx[569];
7855 xx[589] = xx[8] * xx[595];
7856 xx[590] = xx[580];
7857 pm_math_cross3(xx + 593, xx + 588, xx + 596);
7858 xx[588] = 6.30935626036444e-12;
7859 xx[589] = xx[463];
7860 xx[590] = xx[581];
7861 xx[591] = xx[579];
7862 xx[593] = 5.998698970888227e-12;
7863 xx[594] = xx[593] * xx[579];
7864 xx[599] = xx[588] * xx[579];
7865 xx[579] = xx[593] * xx[463] + xx[581] * xx[588];
7866 xx[600] = xx[594];
7867 xx[601] = xx[599];
7868 xx[602] = - xx[579];
7869 pm_math_cross3(xx + 589, xx + 600, xx + 603);
7870 xx[589] = xx[588] + xx[4] * (xx[603] + xx[442] * xx[594]);
7871 xx[590] = (xx[442] * xx[599] + xx[604]) * xx[4] - xx[593];
7872 xx[591] = (xx[605] - xx[442] * xx[579]) * xx[4];
7873 pm_math_quatXform(xx + 325, xx + 589, xx + 599);
7874 xx[442] = 0.3162538200043575;
7875 xx[463] = xx[2] * state[86];
7876 xx[579] = sin(xx[463]);
7877 xx[581] = 0.3162553791961478;
7878 xx[588] = cos(xx[463]);
7879 xx[463] = xx[442] * xx[579] - xx[581] * xx[588];
7880 xx[589] = 0.6324445710612973;
7881 xx[590] = 0.6324396579890008;
7882 xx[591] = xx[589] * xx[588] + xx[590] * xx[579];
7883 xx[593] = - xx[591];
7884 xx[594] = xx[590] * xx[588] - xx[589] * xx[579];
7885 xx[589] = xx[442] * xx[588] + xx[581] * xx[579];
7886 xx[602] = xx[463];
7887 xx[603] = xx[593];
7888 xx[604] = xx[594];
7889 xx[605] = xx[589];
7890 xx[606] = motionData[406];
7891 xx[607] = motionData[407];
7892 xx[608] = motionData[408];
7893 xx[609] = motionData[409];
7894 pm_math_quatCompose(xx + 602, xx + 606, xx + 610);
7895 xx[602] = xx[4] * (motionData[406] * motionData[408] - motionData[407] *
7896 motionData[409]);
7897 xx[603] = - ((motionData[406] * motionData[407] + motionData[408] *
7898 motionData[409]) * xx[4]);
7899 xx[604] = (motionData[407] * motionData[407] + motionData[408] * motionData
7900 [408]) * xx[4] - xx[5];
7901 pm_math_cross3(xx + 602, xx + 208, xx + 605);
7902 pm_math_quatXform(xx + 610, xx + 605, xx + 602);
7903 xx[442] = xx[589] * motionData[410];
7904 xx[605] = xx[593];
7905 xx[606] = xx[594];
7906 xx[607] = xx[589];
7907 xx[579] = xx[589] * motionData[411];
7908 xx[581] = xx[594] * motionData[411] - xx[591] * motionData[410];
7909 xx[608] = xx[442];
7910 xx[609] = xx[579];
7911 xx[610] = - xx[581];
7912 pm_math_cross3(xx + 605, xx + 608, xx + 611);
7913 xx[588] = xx[27] * xx[591];
7914 xx[590] = xx[27] * xx[589];
7915 xx[593] = xx[2] * state[88];
7916 xx[605] = cos(xx[593]);
7917 xx[606] = sin(xx[593]);
7918 xx[607] = xx[605] * motionData[169] - xx[606] * motionData[170];
7919 xx[608] = - (xx[605] * motionData[168] + xx[606] * motionData[171]);
7920 xx[609] = xx[606] * motionData[168] - xx[605] * motionData[171];
7921 xx[610] = xx[606] * motionData[169] + xx[605] * motionData[170];
7922 xx[614] = motionData[182];
7923 xx[615] = motionData[183];
7924 xx[616] = motionData[184];
7925 xx[617] = motionData[185];
7926 pm_math_quatCompose(xx + 607, xx + 614, xx + 618);
7927 xx[607] = xx[4] * (motionData[183] * motionData[185] - motionData[182] *
7928 motionData[184]);
7929 xx[608] = (motionData[182] * motionData[183] + motionData[184] * motionData
7930 [185]) * xx[4];
7931 xx[609] = xx[5] - (motionData[183] * motionData[183] + motionData[184] *
7932 motionData[184]) * xx[4];
7933 pm_math_cross3(xx + 607, xx + 208, xx + 614);
7934 pm_math_quatXform(xx + 618, xx + 614, xx + 607);
7935 xx[593] = xx[606] * motionData[187] - xx[605] * motionData[186];
7936 xx[610] = 1.600627075326599e-13;
7937 xx[614] = 8.497959654019115e-12;
7938 xx[615] = xx[610] * xx[605] + xx[614] * xx[606];
7939 xx[616] = xx[4] * xx[606] * xx[593] - (motionData[187] - xx[4] * xx[615] * xx
7940 [606]) - xx[614];
7941 xx[617] = motionData[169];
7942 xx[618] = motionData[170];
7943 xx[619] = motionData[171];
7944 xx[606] = motionData[186] + xx[4] * xx[605] * xx[593] + xx[4] * xx[615] * xx
7945 [605] - xx[610];
7946 xx[593] = xx[606] * motionData[171];
7947 xx[605] = xx[616] * motionData[171];
7948 xx[610] = xx[606] * motionData[169] - xx[616] * motionData[170];
7949 xx[620] = - xx[593];
7950 xx[621] = xx[605];
7951 xx[622] = xx[610];
7952 pm_math_cross3(xx + 617, xx + 620, xx + 623);
7953 xx[617] = motionData[385];
7954 xx[618] = motionData[386];
7955 xx[619] = motionData[387];
7956 xx[620] = motionData[388];
7957 xx[614] = xx[55] * state[93] - xx[56] * state[90];
7958 xx[615] = xx[55] * state[92] + xx[56] * state[91];
7959 xx[621] = - xx[615];
7960 xx[622] = xx[56] * state[92] - xx[55] * state[91];
7961 xx[626] = - xx[622];
7962 xx[627] = xx[55] * state[90] + xx[56] * state[93];
7963 xx[628] = - xx[627];
7964 xx[629] = xx[614];
7965 xx[630] = xx[621];
7966 xx[631] = xx[626];
7967 xx[632] = xx[628];
7968 pm_math_quatCompose(xx + 617, xx + 629, xx + 633);
7969 pm_math_quatXform(xx + 633, xx + 247, xx + 637);
7970 pm_math_quatXform(xx + 629, xx + 99, xx + 640);
7971 pm_math_quatXform(xx + 617, xx + 640, xx + 643);
7972 pm_math_quatXform(xx + 633, xx + 253, xx + 640);
7973 pm_math_quatXform(xx + 629, xx + 105, xx + 646);
7974 pm_math_quatXform(xx + 617, xx + 646, xx + 629);
7975 xx[632] = xx[191] * xx[636];
7976 xx[646] = xx[191] * xx[634] + xx[192] * xx[635];
7977 xx[647] = - xx[632];
7978 xx[648] = - (xx[192] * xx[636]);
7979 xx[649] = xx[646];
7980 pm_math_cross3(xx + 634, xx + 647, xx + 650);
7981 xx[647] = xx[621];
7982 xx[648] = xx[626];
7983 xx[649] = xx[628];
7984 xx[621] = xx[86] * xx[627];
7985 xx[626] = xx[112] * xx[627];
7986 xx[627] = xx[86] * xx[615] + xx[622] * xx[112];
7987 xx[653] = xx[621];
7988 xx[654] = xx[626];
7989 xx[655] = - xx[627];
7990 pm_math_cross3(xx + 647, xx + 653, xx + 656);
7991 xx[647] = xx[4] * (xx[656] + xx[621] * xx[614]) - xx[112];
7992 xx[648] = xx[86] + (xx[626] * xx[614] + xx[657]) * xx[4];
7993 xx[649] = (xx[658] - xx[627] * xx[614]) * xx[4];
7994 pm_math_quatXform(xx + 617, xx + 647, xx + 626);
7995 xx[617] = motionData[490];
7996 xx[618] = motionData[491];
7997 xx[619] = motionData[492];
7998 xx[620] = motionData[493];
7999 pm_math_quatCompose(xx + 12, xx + 617, xx + 653);
8000 xx[12] = xx[4] * (motionData[490] * motionData[492] - motionData[491] *
8001 motionData[493]);
8002 xx[13] = - ((motionData[490] * motionData[491] + motionData[492] * motionData
8003 [493]) * xx[4]);
8004 xx[14] = (motionData[491] * motionData[491] + motionData[492] * motionData[492])
8005 * xx[4] - xx[5];
8006 pm_math_cross3(xx + 12, xx + 24, xx + 617);
8007 pm_math_quatXform(xx + 653, xx + 617, xx + 12);
8008 xx[15] = xx[7] * motionData[494];
8009 xx[614] = xx[7] * motionData[495];
8010 xx[7] = xx[11] * motionData[495] - xx[9] * motionData[494];
8011 xx[617] = - xx[15];
8012 xx[618] = - xx[614];
8013 xx[619] = - xx[7];
8014 pm_math_cross3(xx + 20, xx + 617, xx + 620);
8015 xx[653] = motionData[483];
8016 xx[654] = motionData[484];
8017 xx[655] = motionData[485];
8018 xx[656] = motionData[486];
8019 pm_math_quatCompose(xx + 37, xx + 653, xx + 657);
8020 xx[20] = xx[4] * (motionData[484] * motionData[486] - motionData[483] *
8021 motionData[485]);
8022 xx[21] = (motionData[483] * motionData[484] + motionData[485] * motionData[486])
8023 * xx[4];
8024 xx[22] = xx[5] - (motionData[484] * motionData[484] + motionData[485] *
8025 motionData[485]) * xx[4];
8026 pm_math_cross3(xx + 20, xx + 24, xx + 37);
8027 pm_math_quatXform(xx + 657, xx + 37, xx + 20);
8028 xx[9] = xx[36] * motionData[488] - xx[35] * motionData[487];
8029 xx[11] = xx[4] * xx[36] * xx[9] - (motionData[488] + xx[47]) - xx[45];
8030 xx[36] = motionData[487] + xx[4] * xx[35] * xx[9] - xx[52] + xx[44];
8031 xx[9] = xx[36] * motionData[17];
8032 xx[35] = xx[11] * motionData[17];
8033 xx[37] = xx[36] * motionData[15] - xx[11] * motionData[16];
8034 xx[38] = - xx[9];
8035 xx[39] = xx[35];
8036 xx[40] = xx[37];
8037 pm_math_cross3(xx + 49, xx + 38, xx + 617);
8038 xx[49] = motionData[476];
8039 xx[50] = motionData[477];
8040 xx[51] = motionData[478];
8041 xx[52] = motionData[479];
8042 pm_math_quatCompose(xx + 75, xx + 49, xx + 653);
8043 xx[38] = motionData[477];
8044 xx[39] = motionData[478];
8045 xx[40] = motionData[479];
8046 xx[44] = xx[82] * motionData[479];
8047 xx[45] = xx[82] * motionData[477] + motionData[478];
8048 xx[49] = xx[44];
8049 xx[50] = motionData[479];
8050 xx[51] = - xx[45];
8051 pm_math_cross3(xx + 38, xx + 49, xx + 75);
8052 xx[47] = motionData[476] * motionData[479];
8053 xx[49] = xx[5] + (xx[75] - xx[44] * motionData[476]) * xx[4];
8054 xx[50] = xx[4] * (xx[76] - xx[47]) - xx[82];
8055 xx[51] = xx[4] * (xx[77] + xx[45] * motionData[476]);
8056 pm_math_cross3(xx + 49, xx + 24, xx + 75);
8057 pm_math_quatXform(xx + 653, xx + 75, xx + 49);
8058 xx[45] = - (xx[82] * motionData[482]);
8059 xx[75] = xx[45];
8060 xx[76] = - motionData[482];
8061 xx[77] = motionData[481] + xx[82] * motionData[480];
8062 pm_math_quatXform(xx + 71, xx + 75, xx + 647);
8063 xx[75] = xx[647] + xx[102];
8064 xx[76] = xx[648] + xx[103];
8065 xx[77] = xx[649] + xx[104];
8066 pm_math_quatXform(xx + 61, xx + 75, xx + 102);
8067 xx[52] = motionData[477] - xx[82] * motionData[478];
8068 xx[75] = - motionData[479];
8069 xx[76] = xx[44];
8070 xx[77] = xx[52];
8071 pm_math_cross3(xx + 38, xx + 75, xx + 647);
8072 xx[38] = xx[82] + (xx[47] + xx[647]) * xx[4];
8073 xx[39] = xx[5] + xx[4] * (xx[648] - xx[82] * xx[47]);
8074 xx[40] = xx[4] * (xx[649] - xx[52] * motionData[476]);
8075 pm_math_cross3(xx + 38, xx + 24, xx + 75);
8076 pm_math_quatXform(xx + 653, xx + 75, xx + 38);
8077 xx[75] = motionData[482];
8078 xx[76] = xx[45];
8079 xx[77] = xx[82] * motionData[481] - motionData[480];
8080 pm_math_quatXform(xx + 71, xx + 75, xx + 647);
8081 xx[71] = xx[647] + xx[90];
8082 xx[72] = xx[648] + xx[91];
8083 xx[73] = xx[649] + xx[92];
8084 pm_math_quatXform(xx + 61, xx + 71, xx + 74);
8085 xx[71] = xx[4] * (motionData[477] * motionData[479] - motionData[476] *
8086 motionData[478]);
8087 xx[72] = (motionData[476] * motionData[477] + motionData[478] * motionData[479])
8088 * xx[4];
8089 xx[73] = xx[5] - (motionData[477] * motionData[477] + motionData[478] *
8090 motionData[478]) * xx[4];
8091 pm_math_cross3(xx + 71, xx + 24, xx + 90);
8092 pm_math_quatXform(xx + 653, xx + 90, xx + 71);
8093 xx[44] = xx[69] * motionData[480];
8094 xx[45] = xx[69] * motionData[481];
8095 xx[47] = xx[65] * motionData[480] + xx[67] * motionData[481];
8096 xx[90] = xx[44];
8097 xx[91] = xx[45];
8098 xx[92] = - xx[47];
8099 pm_math_cross3(xx + 83, xx + 90, xx + 647);
8100 xx[82] = xx[4] * (xx[647] + xx[44] * xx[57]) + xx[118] - motionData[481] - xx
8101 [112];
8102 xx[83] = motionData[480] + xx[4] * (xx[648] + xx[45] * xx[57]) + xx[111] + xx
8103 [86];
8104 xx[84] = (xx[649] - xx[47] * xx[57]) * xx[4] + xx[113];
8105 pm_math_quatXform(xx + 61, xx + 82, xx + 90);
8106 xx[61] = motionData[469];
8107 xx[62] = motionData[470];
8108 xx[63] = motionData[471];
8109 xx[64] = motionData[472];
8110 pm_math_quatCompose(xx + 129, xx + 61, xx + 82);
8111 xx[44] = motionData[471] * motionData[471];
8112 xx[45] = motionData[472] * motionData[472];
8113 xx[47] = motionData[470] * motionData[471];
8114 xx[52] = motionData[469] * motionData[472];
8115 xx[57] = motionData[469] * motionData[471];
8116 xx[61] = motionData[470] * motionData[472];
8117 xx[62] = xx[5] - (xx[44] + xx[45]) * xx[4];
8118 xx[63] = xx[4] * (xx[47] - xx[52]);
8119 xx[64] = (xx[57] + xx[61]) * xx[4];
8120 pm_math_cross3(xx + 62, xx + 24, xx + 129);
8121 pm_math_quatXform(xx + 82, xx + 129, xx + 62);
8122 xx[65] = xx[117] * motionData[474];
8123 xx[67] = xx[124] * motionData[475];
8124 xx[69] = xx[65] + xx[67];
8125 xx[77] = xx[70] * motionData[474];
8126 xx[78] = xx[70] * motionData[475];
8127 xx[129] = - xx[69];
8128 xx[130] = - xx[77];
8129 xx[131] = - xx[78];
8130 pm_math_cross3(xx + 142, xx + 129, xx + 647);
8131 xx[129] = xx[4] * (xx[647] - xx[69] * xx[68]) + xx[156];
8132 xx[130] = xx[4] * (xx[648] - xx[77] * xx[68]) + xx[150] - motionData[475] -
8133 xx[19];
8134 xx[131] = motionData[474] + xx[4] * (xx[649] - xx[78] * xx[68]) + xx[154] -
8135 xx[8];
8136 pm_math_quatXform(xx + 119, xx + 129, xx + 647);
8137 xx[69] = motionData[470] * motionData[470];
8138 xx[77] = motionData[471] * motionData[472];
8139 xx[78] = motionData[469] * motionData[470];
8140 xx[129] = (xx[52] + xx[47]) * xx[4];
8141 xx[130] = xx[5] - (xx[45] + xx[69]) * xx[4];
8142 xx[131] = xx[4] * (xx[77] - xx[78]);
8143 pm_math_cross3(xx + 129, xx + 24, xx + 653);
8144 pm_math_quatXform(xx + 82, xx + 653, xx + 129);
8145 xx[45] = xx[117] * motionData[473];
8146 xx[47] = xx[70] * motionData[473];
8147 xx[52] = xx[47] - xx[67];
8148 xx[67] = xx[117] * motionData[475];
8149 xx[653] = xx[45];
8150 xx[654] = xx[52];
8151 xx[655] = xx[67];
8152 pm_math_cross3(xx + 142, xx + 653, xx + 656);
8153 xx[653] = motionData[475] + (xx[45] * xx[68] + xx[656]) * xx[4] + xx[162] +
8154 xx[19];
8155 xx[654] = (xx[52] * xx[68] + xx[657]) * xx[4] + xx[155];
8156 xx[655] = (xx[67] * xx[68] + xx[658]) * xx[4] + xx[161] - motionData[473] -
8157 xx[6];
8158 pm_math_quatXform(xx + 119, xx + 653, xx + 154);
8159 xx[653] = xx[4] * (xx[61] - xx[57]);
8160 xx[654] = (xx[78] + xx[77]) * xx[4];
8161 xx[655] = xx[5] - (xx[69] + xx[44]) * xx[4];
8162 pm_math_cross3(xx + 653, xx + 24, xx + 656);
8163 pm_math_quatXform(xx + 82, xx + 656, xx + 653);
8164 xx[19] = xx[124] * motionData[473];
8165 xx[44] = xx[124] * motionData[474];
8166 xx[45] = xx[47] - xx[65];
8167 xx[82] = xx[19];
8168 xx[83] = xx[44];
8169 xx[84] = xx[45];
8170 pm_math_cross3(xx + 142, xx + 82, xx + 656);
8171 xx[82] = (xx[19] * xx[68] + xx[656]) * xx[4] + xx[133] - motionData[474] + xx
8172 [8];
8173 xx[83] = motionData[473] + (xx[44] * xx[68] + xx[657]) * xx[4] + xx[66] + xx[6];
8174 xx[84] = (xx[45] * xx[68] + xx[658]) * xx[4] + xx[127];
8175 pm_math_quatXform(xx + 119, xx + 82, xx + 65);
8176 xx[82] = motionData[77];
8177 xx[83] = motionData[78];
8178 xx[84] = motionData[79];
8179 xx[85] = motionData[80];
8180 pm_math_quatCompose(xx + 169, xx + 82, xx + 117);
8181 xx[68] = xx[4] * (motionData[78] * motionData[80] - motionData[77] *
8182 motionData[79]);
8183 xx[69] = (motionData[77] * motionData[78] + motionData[79] * motionData[80]) *
8184 xx[4];
8185 xx[70] = xx[5] - (motionData[78] * motionData[78] + motionData[79] *
8186 motionData[79]) * xx[4];
8187 pm_math_cross3(xx + 68, xx + 24, xx + 82);
8188 pm_math_quatXform(xx + 117, xx + 82, xx + 24);
8189 xx[19] = xx[126] * motionData[82];
8190 xx[44] = xx[126] * motionData[81];
8191 xx[45] = xx[4] * (xx[19] * xx[126] - xx[125] * xx[44]) - motionData[82] + xx
8192 [148];
8193 xx[47] = motionData[81] - ((xx[125] * xx[19] + xx[44] * xx[126]) * xx[4] - xx
8194 [160]) - xx[137];
8195 xx[19] = xx[47] * motionData[220];
8196 xx[44] = xx[45] * motionData[220];
8197 xx[52] = xx[47] * motionData[218] - xx[45] * motionData[219];
8198 xx[68] = - xx[19];
8199 xx[69] = xx[44];
8200 xx[70] = xx[52];
8201 pm_math_cross3(xx + 173, xx + 68, xx + 82);
8202 xx[57] = xx[2] * state[40];
8203 xx[61] = sin(xx[57]);
8204 xx[68] = xx[306] * xx[61];
8205 xx[69] = cos(xx[57]);
8206 xx[57] = xx[306] * xx[69];
8207 xx[70] = xx[68] - xx[57];
8208 xx[77] = xx[331] * xx[69];
8209 xx[69] = xx[331] * xx[61];
8210 xx[61] = xx[77] + xx[69];
8211 xx[78] = - xx[61];
8212 xx[85] = xx[69] - xx[77];
8213 xx[69] = xx[68] + xx[57];
8214 xx[57] = - xx[69];
8215 xx[117] = xx[70];
8216 xx[118] = xx[78];
8217 xx[119] = xx[85];
8218 xx[120] = xx[57];
8219 pm_math_quatCompose(xx + 325, xx + 117, xx + 124);
8220 xx[68] = xx[6] * xx[127];
8221 xx[77] = xx[8] * xx[126] - xx[6] * xx[125];
8222 xx[117] = xx[68];
8223 xx[118] = - (xx[8] * xx[127]);
8224 xx[119] = xx[77];
8225 pm_math_cross3(xx + 125, xx + 117, xx + 120);
8226 xx[111] = 5.088251355846174e-12;
8227 xx[117] = xx[78];
8228 xx[118] = xx[85];
8229 xx[119] = xx[57];
8230 xx[57] = 7.483145982728478e-12;
8231 xx[78] = xx[69] * xx[57];
8232 xx[113] = xx[69] * xx[111];
8233 xx[69] = xx[61] * xx[57] + xx[111] * xx[85];
8234 xx[142] = xx[78];
8235 xx[143] = - xx[113];
8236 xx[144] = - xx[69];
8237 pm_math_cross3(xx + 117, xx + 142, xx + 160);
8238 xx[117] = xx[111] + xx[4] * (xx[160] + xx[78] * xx[70]);
8239 xx[118] = xx[57] + (xx[161] - xx[113] * xx[70]) * xx[4];
8240 xx[119] = (xx[162] - xx[70] * xx[69]) * xx[4];
8241 pm_math_quatXform(xx + 325, xx + 117, xx + 142);
8242 xx[57] = xx[2] * state[42];
8243 xx[61] = cos(xx[57]);
8244 xx[69] = sin(xx[57]);
8245 xx[57] = xx[316] * xx[61] + xx[330] * xx[69];
8246 xx[70] = xx[334] * xx[69] - xx[335] * xx[61];
8247 xx[78] = xx[334] * xx[61] + xx[335] * xx[69];
8248 xx[85] = xx[316] * xx[69] - xx[330] * xx[61];
8249 xx[169] = xx[57];
8250 xx[170] = xx[70];
8251 xx[171] = xx[78];
8252 xx[172] = xx[85];
8253 xx[325] = motionData[462];
8254 xx[326] = motionData[463];
8255 xx[327] = motionData[464];
8256 xx[328] = motionData[465];
8257 pm_math_quatCompose(xx + 169, xx + 325, xx + 656);
8258 xx[117] = xx[4] * (motionData[463] * motionData[465] - motionData[462] *
8259 motionData[464]);
8260 xx[118] = (motionData[462] * motionData[463] + motionData[464] * motionData
8261 [465]) * xx[4];
8262 xx[119] = xx[5] - (motionData[463] * motionData[463] + motionData[464] *
8263 motionData[464]) * xx[4];
8264 pm_math_cross3(xx + 117, xx + 208, xx + 160);
8265 pm_math_quatXform(xx + 656, xx + 160, xx + 117);
8266 xx[160] = xx[70];
8267 xx[161] = xx[78];
8268 xx[162] = xx[85];
8269 xx[61] = xx[85] * motionData[466];
8270 xx[69] = xx[85] * motionData[467];
8271 xx[111] = xx[70] * motionData[466] + xx[78] * motionData[467];
8272 xx[169] = - xx[61];
8273 xx[170] = - xx[69];
8274 xx[171] = xx[111];
8275 pm_math_cross3(xx + 160, xx + 169, xx + 172);
8276 xx[113] = xx[70] * xx[27];
8277 xx[125] = xx[85] * xx[27];
8278 xx[126] = xx[2] * state[44];
8279 xx[2] = cos(xx[126]);
8280 xx[132] = sin(xx[126]);
8281 xx[325] = xx[2] * motionData[85] - xx[132] * motionData[86];
8282 xx[326] = - (xx[2] * motionData[84] + xx[132] * motionData[87]);
8283 xx[327] = xx[132] * motionData[84] - xx[2] * motionData[87];
8284 xx[328] = xx[132] * motionData[85] + xx[2] * motionData[86];
8285 xx[656] = motionData[98];
8286 xx[657] = motionData[99];
8287 xx[658] = motionData[100];
8288 xx[659] = motionData[101];
8289 pm_math_quatCompose(xx + 325, xx + 656, xx + 660);
8290 xx[160] = xx[4] * (motionData[99] * motionData[101] - motionData[98] *
8291 motionData[100]);
8292 xx[161] = (motionData[98] * motionData[99] + motionData[100] * motionData[101])
8293 * xx[4];
8294 xx[162] = xx[5] - (motionData[99] * motionData[99] + motionData[100] *
8295 motionData[100]) * xx[4];
8296 pm_math_cross3(xx + 160, xx + 208, xx + 169);
8297 pm_math_quatXform(xx + 660, xx + 169, xx + 160);
8298 xx[5] = xx[132] * motionData[103] - xx[2] * motionData[102];
8299 xx[126] = 3.107391981487723e-12;
8300 xx[133] = 9.83617579279345e-12;
8301 xx[137] = xx[126] * xx[2] + xx[133] * xx[132];
8302 xx[148] = xx[4] * xx[132] * xx[5] - (motionData[103] - xx[4] * xx[137] * xx
8303 [132]) - xx[133];
8304 xx[169] = motionData[85];
8305 xx[170] = motionData[86];
8306 xx[171] = motionData[87];
8307 xx[132] = motionData[102] + xx[4] * xx[2] * xx[5] + xx[4] * xx[137] * xx[2] -
8308 xx[126];
8309 xx[2] = xx[132] * motionData[87];
8310 xx[5] = xx[148] * motionData[87];
8311 xx[126] = xx[132] * motionData[85] - xx[148] * motionData[86];
8312 xx[208] = - xx[2];
8313 xx[209] = xx[5];
8314 xx[210] = xx[126];
8315 pm_math_cross3(xx + 169, xx + 208, xx + 325);
8316 xx[656] = motionData[441];
8317 xx[657] = motionData[442];
8318 xx[658] = motionData[443];
8319 xx[659] = motionData[444];
8320 xx[133] = xx[55] * state[49] - xx[56] * state[46];
8321 xx[137] = xx[55] * state[48] + xx[56] * state[47];
8322 xx[150] = - xx[137];
8323 xx[169] = xx[56] * state[48] - xx[55] * state[47];
8324 xx[170] = - xx[169];
8325 xx[171] = xx[55] * state[46] + xx[56] * state[49];
8326 xx[55] = - xx[171];
8327 xx[660] = xx[133];
8328 xx[661] = xx[150];
8329 xx[662] = xx[170];
8330 xx[663] = xx[55];
8331 pm_math_quatCompose(xx + 656, xx + 660, xx + 664);
8332 pm_math_quatXform(xx + 664, xx + 247, xx + 208);
8333 pm_math_quatXform(xx + 660, xx + 99, xx + 247);
8334 pm_math_quatXform(xx + 656, xx + 247, xx + 99);
8335 pm_math_quatXform(xx + 664, xx + 253, xx + 247);
8336 pm_math_quatXform(xx + 660, xx + 105, xx + 253);
8337 pm_math_quatXform(xx + 656, xx + 253, xx + 105);
8338 xx[56] = xx[191] * xx[667];
8339 xx[175] = xx[191] * xx[665] + xx[192] * xx[666];
8340 xx[253] = - xx[56];
8341 xx[254] = - (xx[192] * xx[667]);
8342 xx[255] = xx[175];
8343 pm_math_cross3(xx + 665, xx + 253, xx + 660);
8344 xx[253] = xx[150];
8345 xx[254] = xx[170];
8346 xx[255] = xx[55];
8347 xx[55] = xx[86] * xx[171];
8348 xx[150] = xx[112] * xx[171];
8349 xx[170] = xx[86] * xx[137] + xx[169] * xx[112];
8350 xx[668] = xx[55];
8351 xx[669] = xx[150];
8352 xx[670] = - xx[170];
8353 pm_math_cross3(xx + 253, xx + 668, xx + 671);
8354 xx[253] = xx[4] * (xx[671] + xx[55] * xx[133]) - xx[112];
8355 xx[254] = xx[86] + (xx[150] * xx[133] + xx[672]) * xx[4];
8356 xx[255] = (xx[673] - xx[170] * xx[133]) * xx[4];
8357 pm_math_quatXform(xx + 656, xx + 253, xx + 169);
8358 J[6] = xx[16] + motionData[271] + (xx[30] - xx[3] * xx[1]) * xx[4] + xx[33];
8359 J[7] = xx[41] + xx[48] + xx[4] * (xx[58] - xx[34] * motionData[14]);
8360 J[8] = xx[93] + xx[96];
8361 J[9] = xx[79] + xx[87];
8362 J[10] = xx[108] + xx[114];
8363 J[11] = xx[139] + xx[145];
8364 J[12] = xx[157] + xx[163];
8365 J[13] = xx[166] + xx[134];
8366 J[14] = xx[151] + xx[149] + xx[4] * (xx[180] - xx[123] * motionData[217]);
8367 J[15] = xx[4] * (xx[193] - xx[177] * xx[188]) + xx[190] + xx[4] * (xx[202] -
8368 xx[178] * motionData[224]) + xx[8];
8369 J[30] = - (xx[205] + motionData[243] + (xx[217] - xx[187] * xx[186]) * xx[4] +
8370 xx[4] * (xx[201] * xx[211] - xx[187] * xx[212]));
8371 J[31] = - (xx[220] + xx[225] + xx[4] * (xx[232] - xx[213] * motionData[126]));
8372 J[32] = - (xx[250] + xx[256]);
8373 J[33] = - (xx[259] + xx[238]);
8374 J[34] = - (xx[4] * (xx[265] - xx[242] * xx[196]) + xx[235] - xx[192]);
8375 J[51] = xx[17] + (xx[31] - xx[3] * xx[10]) * xx[4] - (motionData[270] - xx[223])
8376 - xx[27];
8377 J[52] = xx[42] + xx[46] + (xx[53] * motionData[14] + xx[59]) * xx[4];
8378 J[53] = xx[94] + xx[97];
8379 J[54] = xx[80] + xx[88];
8380 J[55] = xx[109] + xx[115];
8381 J[56] = xx[140] + xx[146];
8382 J[57] = xx[158] + xx[164];
8383 J[58] = xx[167] + xx[135];
8384 J[59] = xx[152] + xx[138] + (xx[128] * motionData[217] + xx[181]) * xx[4];
8385 J[60] = (xx[177] * xx[189] + xx[194]) * xx[4] + xx[183] + (xx[179] *
8386 motionData[224] + xx[203]) * xx[4] + xx[6];
8387 J[75] = - (xx[206] + (xx[218] - xx[187] * xx[198]) * xx[4] - (motionData[242]
8388 - (xx[212] * xx[197] + xx[211] * xx[199]) * xx[4]) - xx[27]);
8389 J[76] = - (xx[221] + xx[215] + (xx[214] * motionData[126] + xx[233]) * xx[4]);
8390 J[77] = - (xx[251] + xx[257]);
8391 J[78] = - (xx[260] + xx[239]);
8392 J[79] = - ((xx[266] - xx[192] * xx[242] * xx[245]) * xx[4] + xx[236] + xx[191]);
8393 J[96] = xx[18] + xx[4] * (xx[32] - xx[3] * xx[23]) + xx[224];
8394 J[97] = xx[43] + (xx[54] * motionData[14] + xx[60]) * xx[4];
8395 J[98] = xx[95] + xx[98];
8396 J[99] = xx[81] + xx[89];
8397 J[100] = xx[110] + xx[116];
8398 J[101] = xx[141] + xx[147];
8399 J[102] = xx[159] + xx[165];
8400 J[103] = xx[168] + xx[136];
8401 J[104] = xx[153] + (xx[176] * motionData[217] + xx[182]) * xx[4];
8402 J[105] = (xx[177] * xx[184] + xx[195]) * xx[4] + (xx[185] * motionData[224] +
8403 xx[204]) * xx[4];
8404 J[120] = - (xx[207] + xx[4] * (xx[219] - xx[200] * xx[187]) + (xx[187] * xx
8405 [211] + xx[201] * xx[212]) * xx[4]);
8406 J[121] = - (xx[222] + (xx[216] * motionData[126] + xx[234]) * xx[4]);
8407 J[122] = - (xx[252] + xx[258]);
8408 J[123] = - (xx[261] + xx[240]);
8409 J[124] = - ((xx[242] * xx[241] + xx[267]) * xx[4] + xx[237]);
8410 J[141] = xx[226] + motionData[327] + (xx[268] - xx[3] * xx[28]) * xx[4] + xx
8411 [33];
8412 J[142] = xx[262] + xx[231] + xx[4] * (xx[274] - xx[230] * motionData[14]);
8413 J[143] = xx[285] + xx[291];
8414 J[144] = xx[271] + xx[277];
8415 J[145] = xx[288] + xx[280];
8416 J[146] = xx[302] + xx[307];
8417 J[147] = xx[313] + xx[319];
8418 J[148] = xx[310] + xx[299];
8419 J[149] = xx[294] + xx[297] + xx[4] * (xx[322] - xx[283] * motionData[217]);
8420 J[151] = xx[4] * (xx[343] + xx[339] * xx[318]) + xx[346] - xx[8];
8421 J[160] = - (xx[349] + xx[4] * (xx[355] - xx[329] * xx[317]) - motionData[299]
8422 + xx[4] * (xx[352] * xx[337] - xx[353] * xx[317]));
8423 J[161] = - (xx[360] + xx[366] + xx[4] * (xx[373] - xx[354] * motionData[105]));
8424 J[162] = - (xx[387] + xx[393]);
8425 J[163] = - (xx[390] + xx[379]);
8426 J[164] = - (xx[4] * (xx[400] - xx[383] * xx[382]) + xx[376] - xx[192]);
8427 J[186] = xx[227] + (xx[269] - xx[3] * xx[29]) * xx[4] - (motionData[326] - xx
8428 [223]) - xx[27];
8429 J[187] = xx[263] + xx[243] + (xx[244] * motionData[14] + xx[275]) * xx[4];
8430 J[188] = xx[286] + xx[292];
8431 J[189] = xx[272] + xx[278];
8432 J[190] = xx[289] + xx[281];
8433 J[191] = xx[303] + xx[308];
8434 J[192] = xx[314] + xx[320];
8435 J[193] = xx[311] + xx[300];
8436 J[194] = xx[295] + xx[298] + (xx[284] * motionData[217] + xx[323]) * xx[4];
8437 J[196] = (xx[344] - xx[8] * xx[339] * xx[342]) * xx[4] + xx[347] - xx[6];
8438 J[205] = - (xx[350] + motionData[298] + xx[4] * (xx[356] - xx[333] * xx[317])
8439 - (xx[338] * xx[353] + xx[336] * xx[352]) * xx[4] + xx[341]);
8440 J[206] = - (xx[361] + xx[359] + (xx[358] * motionData[105] + xx[374]) * xx[4]);
8441 J[207] = - (xx[388] + xx[394]);
8442 J[208] = - (xx[391] + xx[380]);
8443 J[209] = - ((xx[401] - xx[192] * xx[383] * xx[386]) * xx[4] + xx[377] + xx[191]);
8444 J[231] = xx[228] + xx[4] * (xx[270] - xx[229] * xx[3]) + xx[224];
8445 J[232] = xx[264] + (xx[246] * motionData[14] + xx[276]) * xx[4];
8446 J[233] = xx[287] + xx[293];
8447 J[234] = xx[273] + xx[279];
8448 J[235] = xx[290] + xx[282];
8449 J[236] = xx[304] + xx[309];
8450 J[237] = xx[315] + xx[321];
8451 J[238] = xx[312] + xx[301];
8452 J[239] = xx[296] + (xx[305] * motionData[217] + xx[324]) * xx[4];
8453 J[241] = (xx[339] * xx[332] + xx[345]) * xx[4] + xx[348];
8454 J[250] = - (xx[351] + (xx[340] * xx[317] + xx[357]) * xx[4] + (xx[352] * xx
8455 [317] + xx[353] * xx[337]) * xx[4]);
8456 J[251] = - (xx[362] + (xx[363] * motionData[105] + xx[375]) * xx[4]);
8457 J[252] = - (xx[389] + xx[395]);
8458 J[253] = - (xx[392] + xx[381]);
8459 J[254] = - ((xx[383] * xx[396] + xx[402]) * xx[4] + xx[378]);
8460 J[276] = xx[367] + motionData[383] + (xx[403] - xx[3] * xx[364]) * xx[4] + xx
8461 [33];
8462 J[277] = xx[397] + xx[372] + xx[4] * (xx[410] - xx[371] * motionData[14]);
8463 J[278] = xx[421] + xx[427];
8464 J[279] = xx[407] + xx[413];
8465 J[280] = xx[424] + xx[416];
8466 J[281] = xx[438] + xx[443];
8467 J[282] = xx[449] + xx[455];
8468 J[283] = xx[446] + xx[435];
8469 J[284] = xx[430] + xx[433] + xx[4] * (xx[458] - xx[419] * motionData[217]);
8470 J[287] = xx[4] * (xx[474] - xx[470] * xx[452]) + xx[464] + xx[8];
8471 J[305] = - (xx[478] + motionData[355] + (xx[487] - xx[461] * xx[453]) * xx[4]
8472 - xx[4] * (xx[477] * xx[468] + xx[461] * xx[471]));
8473 J[306] = - (xx[484] + xx[493] + xx[4] * (xx[500] - xx[481] * motionData[147]));
8474 J[307] = - (xx[514] + xx[520]);
8475 J[308] = - (xx[517] + xx[506]);
8476 J[309] = - (xx[4] * (xx[527] - xx[510] * xx[509]) + xx[503] - xx[192]);
8477 J[321] = xx[368] + (xx[404] - xx[3] * xx[365]) * xx[4] - (motionData[382] -
8478 xx[223]) - xx[27];
8479 J[322] = xx[398] + xx[384] + (xx[385] * motionData[14] + xx[411]) * xx[4];
8480 J[323] = xx[422] + xx[428];
8481 J[324] = xx[408] + xx[414];
8482 J[325] = xx[425] + xx[417];
8483 J[326] = xx[439] + xx[444];
8484 J[327] = xx[450] + xx[456];
8485 J[328] = xx[447] + xx[436];
8486 J[329] = xx[431] + xx[434] + (xx[420] * motionData[217] + xx[459]) * xx[4];
8487 J[332] = (xx[8] * xx[470] * xx[473] + xx[475]) * xx[4] + xx[465] + xx[6];
8488 J[350] = - (xx[479] + (xx[488] - xx[461] * xx[462]) * xx[4] - (motionData[354]
8489 - (xx[471] * xx[469] + xx[468] * xx[472]) * xx[4]) - xx[27]);
8490 J[351] = - (xx[485] + xx[483] + (xx[482] * motionData[147] + xx[501]) * xx[4]);
8491 J[352] = - (xx[515] + xx[521]);
8492 J[353] = - (xx[518] + xx[507]);
8493 J[354] = - ((xx[528] - xx[192] * xx[510] * xx[513]) * xx[4] + xx[504] + xx[191]);
8494 J[366] = xx[369] + xx[4] * (xx[405] - xx[370] * xx[3]) + xx[224];
8495 J[367] = xx[399] + (xx[406] * motionData[14] + xx[412]) * xx[4];
8496 J[368] = xx[423] + xx[429];
8497 J[369] = xx[409] + xx[415];
8498 J[370] = xx[426] + xx[418];
8499 J[371] = xx[440] + xx[445];
8500 J[372] = xx[451] + xx[457];
8501 J[373] = xx[448] + xx[437];
8502 J[374] = xx[432] + (xx[441] * motionData[217] + xx[460]) * xx[4];
8503 J[377] = (xx[470] * xx[454] + xx[476]) * xx[4] + xx[466];
8504 J[395] = - (xx[480] + xx[4] * (xx[489] - xx[461] * xx[467]) + (xx[477] * xx
8505 [471] - xx[461] * xx[468]) * xx[4]);
8506 J[396] = - (xx[486] + (xx[490] * motionData[147] + xx[502]) * xx[4]);
8507 J[397] = - (xx[516] + xx[522]);
8508 J[398] = - (xx[519] + xx[508]);
8509 J[399] = - ((xx[510] * xx[523] + xx[529]) * xx[4] + xx[505]);
8510 J[411] = xx[494] + motionData[439] + (xx[530] - xx[3] * xx[491]) * xx[4] + xx
8511 [33];
8512 J[412] = xx[524] + xx[499] + xx[4] * (xx[537] - xx[498] * motionData[14]);
8513 J[413] = xx[548] + xx[554];
8514 J[414] = xx[534] + xx[540];
8515 J[415] = xx[551] + xx[543];
8516 J[416] = xx[565] + xx[570];
8517 J[417] = xx[576] + xx[582];
8518 J[418] = xx[573] + xx[562];
8519 J[419] = xx[557] + xx[560] + xx[4] * (xx[585] - xx[546] * motionData[217]);
8520 J[423] = xx[4] * (xx[596] - xx[592] * xx[569]) + xx[599] + xx[8];
8521 J[445] = - (xx[602] + motionData[411] + (xx[463] * xx[442] + xx[611]) * xx[4]
8522 + xx[4] * (xx[594] * xx[588] + xx[463] * xx[590]));
8523 J[446] = - (xx[607] + xx[616] + xx[4] * (xx[623] - xx[593] * motionData[168]));
8524 J[447] = - (xx[637] + xx[643]);
8525 J[448] = - (xx[640] + xx[629]);
8526 J[449] = - (xx[4] * (xx[650] - xx[633] * xx[632]) + xx[626] - xx[192]);
8527 J[456] = xx[495] + (xx[531] - xx[3] * xx[492]) * xx[4] - (motionData[438] -
8528 xx[223]) - xx[27];
8529 J[457] = xx[525] + xx[511] + (xx[512] * motionData[14] + xx[538]) * xx[4];
8530 J[458] = xx[549] + xx[555];
8531 J[459] = xx[535] + xx[541];
8532 J[460] = xx[552] + xx[544];
8533 J[461] = xx[566] + xx[571];
8534 J[462] = xx[577] + xx[583];
8535 J[463] = xx[574] + xx[563];
8536 J[464] = xx[558] + xx[561] + (xx[547] * motionData[217] + xx[586]) * xx[4];
8537 J[468] = (xx[8] * xx[592] * xx[595] + xx[597]) * xx[4] + xx[600] + xx[6];
8538 J[490] = - (xx[603] + (xx[463] * xx[579] + xx[612]) * xx[4] - (motionData[410]
8539 - (xx[590] * xx[589] + xx[588] * xx[591]) * xx[4]) - xx[27]);
8540 J[491] = - (xx[608] + xx[606] + (xx[605] * motionData[168] + xx[624]) * xx[4]);
8541 J[492] = - (xx[638] + xx[644]);
8542 J[493] = - (xx[641] + xx[630]);
8543 J[494] = - ((xx[651] - xx[192] * xx[633] * xx[636]) * xx[4] + xx[627] + xx[191]);
8544 J[501] = xx[496] + xx[4] * (xx[532] - xx[497] * xx[3]) + xx[224];
8545 J[502] = xx[526] + (xx[533] * motionData[14] + xx[539]) * xx[4];
8546 J[503] = xx[550] + xx[556];
8547 J[504] = xx[536] + xx[542];
8548 J[505] = xx[553] + xx[545];
8549 J[506] = xx[567] + xx[572];
8550 J[507] = xx[578] + xx[584];
8551 J[508] = xx[575] + xx[564];
8552 J[509] = xx[559] + (xx[568] * motionData[217] + xx[587]) * xx[4];
8553 J[513] = (xx[592] * xx[580] + xx[598]) * xx[4] + xx[601];
8554 J[535] = - (xx[604] + xx[4] * (xx[613] - xx[463] * xx[581]) + (xx[463] * xx
8555 [588] - xx[594] * xx[590]) * xx[4]);
8556 J[536] = - (xx[609] + (xx[610] * motionData[168] + xx[625]) * xx[4]);
8557 J[537] = - (xx[639] + xx[645]);
8558 J[538] = - (xx[642] + xx[631]);
8559 J[539] = - ((xx[633] * xx[646] + xx[652]) * xx[4] + xx[628]);
8560 J[546] = xx[12] + motionData[495] + (xx[620] - xx[3] * xx[15]) * xx[4] + xx[33];
8561 J[547] = xx[20] + xx[11] + xx[4] * (xx[617] - xx[9] * motionData[14]);
8562 J[548] = xx[49] + xx[102];
8563 J[549] = xx[38] + xx[74];
8564 J[550] = xx[71] + xx[90];
8565 J[551] = xx[62] + xx[647];
8566 J[552] = xx[129] + xx[154];
8567 J[553] = xx[653] + xx[65];
8568 J[554] = xx[24] + xx[45] + xx[4] * (xx[82] - xx[19] * motionData[217]);
8569 J[559] = xx[4] * (xx[120] + xx[124] * xx[68]) + xx[142] - xx[8];
8570 J[560] = - (xx[117] + xx[4] * (xx[172] - xx[61] * xx[57]) - motionData[467] +
8571 xx[4] * (xx[113] * xx[78] - xx[125] * xx[57]));
8572 J[561] = - (xx[160] + xx[148] + xx[4] * (xx[325] - xx[2] * motionData[84]));
8573 J[562] = - (xx[208] + xx[99]);
8574 J[563] = - (xx[247] + xx[105]);
8575 J[564] = - (xx[4] * (xx[660] - xx[664] * xx[56]) + xx[169] - xx[192]);
8576 J[591] = xx[13] + (xx[621] - xx[3] * xx[614]) * xx[4] - (motionData[494] - xx
8577 [223]) - xx[27];
8578 J[592] = xx[21] + xx[36] + (xx[35] * motionData[14] + xx[618]) * xx[4];
8579 J[593] = xx[50] + xx[103];
8580 J[594] = xx[39] + xx[75];
8581 J[595] = xx[72] + xx[91];
8582 J[596] = xx[63] + xx[648];
8583 J[597] = xx[130] + xx[155];
8584 J[598] = xx[654] + xx[66];
8585 J[599] = xx[25] + xx[47] + (xx[44] * motionData[217] + xx[83]) * xx[4];
8586 J[604] = (xx[121] - xx[8] * xx[124] * xx[127]) * xx[4] + xx[143] - xx[6];
8587 J[605] = - (xx[118] + motionData[466] + xx[4] * (xx[173] - xx[69] * xx[57]) -
8588 (xx[85] * xx[125] + xx[70] * xx[113]) * xx[4] + xx[27]);
8589 J[606] = - (xx[161] + xx[132] + (xx[5] * motionData[84] + xx[326]) * xx[4]);
8590 J[607] = - (xx[209] + xx[100]);
8591 J[608] = - (xx[248] + xx[106]);
8592 J[609] = - ((xx[661] - xx[192] * xx[664] * xx[667]) * xx[4] + xx[170] + xx[191]);
8593 J[636] = xx[14] + xx[4] * (xx[622] - xx[7] * xx[3]) + xx[224];
8594 J[637] = xx[22] + (xx[37] * motionData[14] + xx[619]) * xx[4];
8595 J[638] = xx[51] + xx[104];
8596 J[639] = xx[40] + xx[76];
8597 J[640] = xx[73] + xx[92];
8598 J[641] = xx[64] + xx[649];
8599 J[642] = xx[131] + xx[156];
8600 J[643] = xx[655] + xx[67];
8601 J[644] = xx[26] + (xx[52] * motionData[217] + xx[84]) * xx[4];
8602 J[649] = (xx[124] * xx[77] + xx[122]) * xx[4] + xx[144];
8603 J[650] = - (xx[119] + (xx[111] * xx[57] + xx[174]) * xx[4] + (xx[113] * xx[57]
8604 + xx[125] * xx[78]) * xx[4]);
8605 J[651] = - (xx[162] + (xx[126] * motionData[84] + xx[327]) * xx[4]);
8606 J[652] = - (xx[210] + xx[101]);
8607 J[653] = - (xx[249] + xx[107]);
8608 J[654] = - ((xx[664] * xx[175] + xx[662]) * xx[4] + xx[171]);
8609 return 15;
8610}
8611
8612static int isInKinematicSingularity_0(const double *rtdv, const double
8613 *motionData)
8614{
8615 (void) rtdv;
8616 (void) motionData;
8617 return 0;
8618}
8619
8620static int isInKinematicSingularity_1(const double *rtdv, const double
8621 *motionData)
8622{
8623 (void) rtdv;
8624 (void) motionData;
8625 return 0;
8626}
8627
8628static int isInKinematicSingularity_2(const double *rtdv, const double
8629 *motionData)
8630{
8631 (void) rtdv;
8632 (void) motionData;
8633 return 0;
8634}
8635
8636static int isInKinematicSingularity_3(const double *rtdv, const double
8637 *motionData)
8638{
8639 (void) rtdv;
8640 (void) motionData;
8641 return 0;
8642}
8643
8644static int isInKinematicSingularity_4(const double *rtdv, const double
8645 *motionData)
8646{
8647 (void) rtdv;
8648 (void) motionData;
8649 return 0;
8650}
8651
8652int PlatformAssem_f0ca4364_1_isInKinematicSingularity(const void *mech, const
8653 double *rtdv, size_t constraintIdx, const double *motionData)
8654{
8655 (void) mech;
8656 (void) rtdv
8657 ;
8658 (void) motionData;
8659 switch (constraintIdx)
8660 {
8661 case 0:
8662 return isInKinematicSingularity_0(rtdv, motionData);
8663
8664 case 1:
8665 return isInKinematicSingularity_1(rtdv, motionData);
8666
8667 case 2:
8668 return isInKinematicSingularity_2(rtdv, motionData);
8669
8670 case 3:
8671 return isInKinematicSingularity_3(rtdv, motionData);
8672
8673 case 4:
8674 return isInKinematicSingularity_4(rtdv, motionData);
8675 }
8676
8677 return 0;
8678}
8679
8680PmfMessageId PlatformAssem_f0ca4364_1_convertStateVector(const void *asmMech,
8681 const double *rtdv, const void *simMech, const double *asmState, double
8682 *simState, void *neDiagMgr0)
8683{
8684 NeuDiagnosticManager *neDiagMgr = (NeuDiagnosticManager *) neDiagMgr0;
8685 double xx[60];
8686 (void) asmMech;
8687 (void) rtdv;
8688 (void) simMech;
8689 (void) neDiagMgr;
8690 xx[0] = 3.980251340548381e-7;
8691 xx[1] = 0.7058357201813958;
8692 xx[2] = 0.5;
8693 xx[3] = xx[2] * asmState[42];
8694 xx[4] = sin(xx[3]);
8695 xx[5] = 0.7058407546227096;
8696 xx[6] = cos(xx[3]);
8697 xx[3] = xx[1] * xx[4] - xx[5] * xx[6];
8698 xx[7] = xx[2] * asmState[44];
8699 xx[8] = cos(xx[7]);
8700 xx[9] = sin(xx[7]);
8701 xx[7] = xx[1] * xx[6] + xx[5] * xx[4];
8702 xx[1] = 0.04233709306330295;
8703 xx[5] = 0.04233598682685397;
8704 xx[10] = xx[1] * xx[6] + xx[5] * xx[4];
8705 xx[11] = xx[1] * xx[4] - xx[5] * xx[6];
8706 xx[12] = xx[3] * xx[8] - xx[9] * xx[7];
8707 xx[13] = - (xx[8] * xx[10] + xx[11] * xx[9]);
8708 xx[14] = xx[9] * xx[10] - xx[11] * xx[8];
8709 xx[15] = xx[3] * xx[9] + xx[8] * xx[7];
8710 xx[1] = 3.980251324392935e-7;
8711 xx[4] = 0.999999999999921;
8712 xx[16] = xx[1] * asmState[49] - xx[4] * asmState[46];
8713 xx[17] = - (xx[1] * asmState[48] + xx[4] * asmState[47]);
8714 xx[18] = - (xx[4] * asmState[48] - xx[1] * asmState[47]);
8715 xx[19] = - (xx[1] * asmState[46] + xx[4] * asmState[49]);
8716 pm_math_quatCompose(xx + 12, xx + 16, xx + 20);
8717 xx[5] = xx[2] * asmState[30];
8718 xx[6] = cos(xx[5]);
8719 xx[12] = xx[2] * asmState[14];
8720 xx[13] = cos(xx[12]);
8721 xx[14] = 0.5901074779979933;
8722 xx[15] = xx[2] * asmState[12];
8723 xx[24] = cos(xx[15]);
8724 xx[25] = 0.5901036711621462;
8725 xx[26] = sin(xx[15]);
8726 xx[15] = xx[14] * xx[24] + xx[25] * xx[26];
8727 xx[27] = xx[25] * xx[24] - xx[14] * xx[26];
8728 xx[14] = sin(xx[12]);
8729 xx[12] = 0.3895853754265615;
8730 xx[25] = 0.389581900177037;
8731 xx[28] = xx[12] * xx[24] - xx[25] * xx[26];
8732 xx[29] = xx[25] * xx[24] + xx[12] * xx[26];
8733 xx[30] = - (xx[13] * xx[15] + xx[27] * xx[14]);
8734 xx[31] = - (xx[28] * xx[13] - xx[14] * xx[29]);
8735 xx[32] = xx[28] * xx[14] + xx[13] * xx[29];
8736 xx[33] = xx[27] * xx[13] - xx[14] * xx[15];
8737 xx[34] = xx[1] * asmState[19] - xx[4] * asmState[16];
8738 xx[35] = - (xx[1] * asmState[18] + xx[4] * asmState[17]);
8739 xx[36] = - (xx[4] * asmState[18] - xx[1] * asmState[17]);
8740 xx[37] = - (xx[1] * asmState[16] + xx[4] * asmState[19]);
8741 pm_math_quatCompose(xx + 30, xx + 34, xx + 38);
8742 xx[30] = xx[4] * asmState[26] - xx[0] * asmState[23];
8743 xx[31] = xx[4] * asmState[25] - xx[0] * asmState[24];
8744 xx[32] = - (xx[0] * asmState[25] + xx[4] * asmState[24]);
8745 xx[33] = - (xx[0] * asmState[26] + xx[4] * asmState[23]);
8746 pm_math_quatCompose(xx + 38, xx + 30, xx + 42);
8747 xx[12] = sin(xx[5]);
8748 xx[38] = xx[6] * xx[42] - xx[45] * xx[12];
8749 xx[39] = xx[6] * xx[43] + xx[44] * xx[12];
8750 xx[40] = xx[6] * xx[44] - xx[43] * xx[12];
8751 xx[41] = xx[42] * xx[12] + xx[6] * xx[45];
8752 xx[5] = 0.6123724356957949;
8753 xx[24] = xx[2] * asmState[40];
8754 xx[25] = sin(xx[24]);
8755 xx[26] = xx[5] * xx[25];
8756 xx[42] = cos(xx[24]);
8757 xx[24] = xx[5] * xx[42];
8758 xx[5] = 0.3535533905932732;
8759 xx[43] = xx[5] * xx[42];
8760 xx[42] = xx[5] * xx[25];
8761 xx[44] = xx[26] - xx[24];
8762 xx[45] = - (xx[43] + xx[42]);
8763 xx[46] = xx[42] - xx[43];
8764 xx[47] = - (xx[26] + xx[24]);
8765 pm_math_quatCompose(xx + 38, xx + 44, xx + 48);
8766 pm_math_quatInverseCompose(xx + 20, xx + 48, xx + 38);
8767 xx[20] = xx[28];
8768 xx[21] = - xx[15];
8769 xx[22] = xx[27];
8770 xx[23] = - xx[29];
8771 xx[5] = 0.9982060081755033;
8772 xx[15] = xx[2] * asmState[6];
8773 xx[24] = cos(xx[15]);
8774 xx[25] = 7.822272946646824e-7;
8775 xx[26] = sin(xx[15]);
8776 xx[15] = 0.05987290897428056;
8777 xx[27] = 3.559887592452546e-6;
8778 xx[48] = - (xx[5] * xx[24] + xx[25] * xx[26]);
8779 xx[49] = xx[25] * xx[24] - xx[5] * xx[26];
8780 xx[50] = - (xx[15] * xx[24] + xx[27] * xx[26]);
8781 xx[51] = xx[27] * xx[24] - xx[15] * xx[26];
8782 xx[5] = xx[2] * asmState[7];
8783 xx[15] = 7.200670813652432e-6;
8784 xx[24] = sin(xx[5]);
8785 xx[25] = 0.9999999999734306;
8786 xx[26] = 1.135366319023148e-6;
8787 xx[52] = cos(xx[5]);
8788 xx[53] = - (xx[15] * xx[24]);
8789 xx[54] = xx[25] * xx[24];
8790 xx[55] = xx[26] * xx[24];
8791 pm_math_quatCompose(xx + 48, xx + 52, xx + 56);
8792 xx[5] = xx[2] * asmState[8];
8793 xx[2] = 0.1195309949245745;
8794 xx[24] = sin(xx[5]);
8795 xx[27] = 1.987929622149476e-6;
8796 xx[28] = 0.9928304695406913;
8797 xx[48] = cos(xx[5]);
8798 xx[49] = - (xx[2] * xx[24]);
8799 xx[50] = - (xx[27] * xx[24]);
8800 xx[51] = xx[28] * xx[24];
8801 pm_math_quatCompose(xx + 56, xx + 48, xx + 52);
8802 xx[5] = 2.0;
8803 xx[56] = - xx[15];
8804 xx[57] = xx[25];
8805 xx[58] = xx[26];
8806 pm_math_quatInverseXform(xx + 48, xx + 56, xx + 24);
8807 xx[48] = (1.0 - (xx[54] * xx[54] + xx[55] * xx[55]) * xx[5]) * asmState[9] +
8808 xx[24] * asmState[10] - xx[2] * asmState[11];
8809 xx[49] = xx[5] * (xx[53] * xx[54] - xx[52] * xx[55]) * asmState[9] + xx[25] *
8810 asmState[10] - xx[27] * asmState[11];
8811 xx[50] = xx[5] * (xx[52] * xx[54] + xx[53] * xx[55]) * asmState[9] + xx[26] *
8812 asmState[10] + xx[28] * asmState[11];
8813 pm_math_quatInverseXform(xx + 20, xx + 48, xx + 24);
8814 xx[2] = xx[13] * xx[25] + xx[24] * xx[14];
8815 xx[15] = xx[26] - asmState[13];
8816 xx[20] = xx[24] - xx[5] * xx[2] * xx[14];
8817 xx[21] = xx[25] - xx[5] * xx[2] * xx[13];
8818 xx[22] = xx[15] - (xx[13] * xx[13] * xx[15] + xx[14] * xx[15] * xx[14]) * xx[5]
8819 + asmState[15];
8820 pm_math_quatInverseXform(xx + 34, xx + 20, xx + 13);
8821 xx[2] = xx[1] * asmState[20];
8822 xx[20] = xx[1] * asmState[21];
8823 xx[21] = xx[13] + asmState[20] - (xx[1] * xx[2] - xx[4] * xx[20]) * xx[5];
8824 xx[22] = xx[14] + asmState[21] - xx[5] * (xx[4] * xx[2] + xx[1] * xx[20]);
8825 xx[23] = xx[15] + asmState[22];
8826 pm_math_quatInverseXform(xx + 30, xx + 21, xx + 13);
8827 xx[2] = xx[13] + asmState[27];
8828 xx[20] = xx[14] + asmState[28];
8829 xx[21] = xx[20] * xx[12];
8830 xx[22] = xx[2] * xx[12];
8831 xx[23] = xx[2] + xx[5] * (xx[6] * xx[21] - xx[22] * xx[12]);
8832 xx[24] = xx[20] - (xx[6] * xx[22] + xx[21] * xx[12]) * xx[5];
8833 xx[25] = xx[15] + asmState[29] + asmState[31];
8834 pm_math_quatInverseXform(xx + 44, xx + 23, xx + 12);
8835 xx[20] = xx[10];
8836 xx[21] = xx[3];
8837 xx[22] = xx[7];
8838 xx[23] = xx[11];
8839 pm_math_quatInverseXform(xx + 20, xx + 48, xx + 24);
8840 xx[2] = xx[8] * xx[25] + xx[24] * xx[9];
8841 xx[3] = xx[26] + asmState[43];
8842 xx[20] = xx[24] - xx[5] * xx[2] * xx[9];
8843 xx[21] = xx[25] - xx[5] * xx[2] * xx[8];
8844 xx[22] = xx[3] - (xx[8] * xx[3] * xx[8] + xx[3] * xx[9] * xx[9]) * xx[5] +
8845 asmState[45];
8846 pm_math_quatInverseXform(xx + 16, xx + 20, xx + 6);
8847 xx[2] = xx[1] * asmState[50];
8848 xx[3] = xx[1] * asmState[51];
8849 xx[9] = xx[6] + asmState[50] - (xx[1] * xx[2] - xx[4] * xx[3]) * xx[5];
8850 xx[10] = xx[7] + asmState[51] - xx[5] * (xx[4] * xx[2] + xx[1] * xx[3]);
8851 xx[11] = xx[8] + asmState[52];
8852 pm_math_quatInverseXform(xx + 38, xx + 9, xx + 1);
8853 simState[0] = asmState[0];
8854 simState[1] = asmState[1];
8855 simState[2] = asmState[2];
8856 simState[3] = asmState[3];
8857 simState[4] = asmState[4];
8858 simState[5] = asmState[5];
8859 simState[6] = asmState[6];
8860 simState[7] = asmState[7];
8861 simState[8] = asmState[8];
8862 simState[9] = asmState[9];
8863 simState[10] = asmState[10];
8864 simState[11] = asmState[11];
8865 simState[12] = asmState[12];
8866 simState[13] = asmState[13];
8867 simState[14] = asmState[14];
8868 simState[15] = asmState[15];
8869 simState[16] = asmState[16];
8870 simState[17] = asmState[17];
8871 simState[18] = asmState[18];
8872 simState[19] = asmState[19];
8873 simState[20] = asmState[20];
8874 simState[21] = asmState[21];
8875 simState[22] = asmState[22];
8876 simState[23] = asmState[42];
8877 simState[24] = asmState[43];
8878 simState[25] = asmState[44];
8879 simState[26] = asmState[45];
8880 simState[27] = asmState[46];
8881 simState[28] = asmState[47];
8882 simState[29] = asmState[48];
8883 simState[30] = asmState[49];
8884 simState[31] = asmState[50];
8885 simState[32] = asmState[51];
8886 simState[33] = asmState[52];
8887 simState[34] = - (xx[0] * xx[38] + xx[4] * xx[41]);
8888 simState[35] = - (xx[0] * xx[39] + xx[4] * xx[40]);
8889 simState[36] = xx[4] * xx[39] - xx[0] * xx[40];
8890 simState[37] = xx[4] * xx[38] - xx[0] * xx[41];
8891 simState[38] = xx[12] - xx[1];
8892 simState[39] = xx[13] - xx[2];
8893 simState[40] = xx[14] + asmState[41] - xx[3];
8894 simState[41] = asmState[40];
8895 simState[42] = asmState[41];
8896 simState[43] = asmState[32];
8897 simState[44] = asmState[33];
8898 simState[45] = asmState[34];
8899 simState[46] = asmState[35];
8900 simState[47] = asmState[36];
8901 simState[48] = asmState[37];
8902 simState[49] = asmState[38];
8903 simState[50] = asmState[39];
8904 simState[51] = asmState[30];
8905 simState[52] = asmState[31];
8906 simState[53] = asmState[53];
8907 simState[54] = asmState[54];
8908 simState[55] = asmState[55];
8909 simState[56] = asmState[56];
8910 simState[57] = asmState[57];
8911 simState[58] = asmState[58];
8912 simState[59] = asmState[59];
8913 simState[60] = asmState[60];
8914 simState[61] = asmState[61];
8915 simState[62] = asmState[62];
8916 simState[63] = asmState[63];
8917 simState[64] = asmState[64];
8918 simState[65] = asmState[65];
8919 simState[66] = asmState[66];
8920 simState[67] = asmState[67];
8921 simState[68] = asmState[68];
8922 simState[69] = asmState[69];
8923 simState[70] = asmState[70];
8924 simState[71] = asmState[71];
8925 simState[72] = asmState[72];
8926 simState[73] = asmState[73];
8927 simState[74] = asmState[74];
8928 simState[75] = asmState[75];
8929 simState[76] = asmState[76];
8930 simState[77] = asmState[77];
8931 simState[78] = asmState[78];
8932 simState[79] = asmState[79];
8933 simState[80] = asmState[80];
8934 simState[81] = asmState[81];
8935 simState[82] = asmState[82];
8936 simState[83] = asmState[83];
8937 simState[84] = asmState[84];
8938 simState[85] = asmState[85];
8939 simState[86] = asmState[86];
8940 simState[87] = asmState[87];
8941 simState[88] = asmState[88];
8942 simState[89] = asmState[89];
8943 simState[90] = asmState[90];
8944 simState[91] = asmState[91];
8945 simState[92] = asmState[92];
8946 simState[93] = asmState[93];
8947 simState[94] = asmState[94];
8948 simState[95] = asmState[95];
8949 simState[96] = asmState[96];
8950 return NULL;
8951}
8952
8953void PlatformAssem_f0ca4364_1_constructStateVector(const void *mech, const
8954 double *solverState, const double *u, const double *uDot, double
8955 *discreteState, double *fullState)
8956{
8957 (void) mech;
8958 (void) discreteState;
8959 fullState[0] = u[0];
8960 fullState[1] = u[1];
8961 fullState[2] = u[2];
8962 fullState[3] = uDot[0];
8963 fullState[4] = uDot[1];
8964 fullState[5] = uDot[2];
8965 fullState[6] = u[3];
8966 fullState[7] = u[4];
8967 fullState[8] = u[5];
8968 fullState[9] = uDot[3];
8969 fullState[10] = uDot[4];
8970 fullState[11] = uDot[5];
8971 fullState[12] = u[7];
8972 fullState[13] = uDot[7];
8973 fullState[14] = solverState[0];
8974 fullState[15] = solverState[1];
8975 fullState[16] = solverState[2];
8976 fullState[17] = solverState[3];
8977 fullState[18] = solverState[4];
8978 fullState[19] = solverState[5];
8979 fullState[20] = solverState[6];
8980 fullState[21] = solverState[7];
8981 fullState[22] = solverState[8];
8982 fullState[23] = u[6];
8983 fullState[24] = uDot[6];
8984 fullState[25] = solverState[9];
8985 fullState[26] = solverState[10];
8986 fullState[27] = solverState[11];
8987 fullState[28] = solverState[12];
8988 fullState[29] = solverState[13];
8989 fullState[30] = solverState[14];
8990 fullState[31] = solverState[15];
8991 fullState[32] = solverState[16];
8992 fullState[33] = solverState[17];
8993 fullState[34] = solverState[18];
8994 fullState[35] = solverState[19];
8995 fullState[36] = solverState[20];
8996 fullState[37] = solverState[21];
8997 fullState[38] = solverState[22];
8998 fullState[39] = solverState[23];
8999 fullState[40] = solverState[24];
9000 fullState[41] = solverState[25];
9001 fullState[42] = solverState[26];
9002 fullState[43] = solverState[27];
9003 fullState[44] = solverState[28];
9004 fullState[45] = solverState[29];
9005 fullState[46] = solverState[30];
9006 fullState[47] = solverState[31];
9007 fullState[48] = solverState[32];
9008 fullState[49] = solverState[33];
9009 fullState[50] = solverState[34];
9010 fullState[51] = solverState[35];
9011 fullState[52] = solverState[36];
9012 fullState[53] = u[11];
9013 fullState[54] = uDot[11];
9014 fullState[55] = solverState[37];
9015 fullState[56] = solverState[38];
9016 fullState[57] = solverState[39];
9017 fullState[58] = solverState[40];
9018 fullState[59] = solverState[41];
9019 fullState[60] = solverState[42];
9020 fullState[61] = solverState[43];
9021 fullState[62] = solverState[44];
9022 fullState[63] = solverState[45];
9023 fullState[64] = u[8];
9024 fullState[65] = uDot[8];
9025 fullState[66] = solverState[46];
9026 fullState[67] = solverState[47];
9027 fullState[68] = solverState[48];
9028 fullState[69] = solverState[49];
9029 fullState[70] = solverState[50];
9030 fullState[71] = solverState[51];
9031 fullState[72] = solverState[52];
9032 fullState[73] = solverState[53];
9033 fullState[74] = solverState[54];
9034 fullState[75] = u[9];
9035 fullState[76] = uDot[9];
9036 fullState[77] = solverState[55];
9037 fullState[78] = solverState[56];
9038 fullState[79] = solverState[57];
9039 fullState[80] = solverState[58];
9040 fullState[81] = solverState[59];
9041 fullState[82] = solverState[60];
9042 fullState[83] = solverState[61];
9043 fullState[84] = solverState[62];
9044 fullState[85] = solverState[63];
9045 fullState[86] = u[10];
9046 fullState[87] = uDot[10];
9047 fullState[88] = solverState[64];
9048 fullState[89] = solverState[65];
9049 fullState[90] = solverState[66];
9050 fullState[91] = solverState[67];
9051 fullState[92] = solverState[68];
9052 fullState[93] = solverState[69];
9053 fullState[94] = solverState[70];
9054 fullState[95] = solverState[71];
9055 fullState[96] = solverState[72];
9056}
9057
9058void PlatformAssem_f0ca4364_1_extractSolverStateVector(const void *mech, const
9059 double *fullState, double *solverState)
9060{
9061 (void) mech;
9062 solverState[0] = fullState[14];
9063 solverState[1] = fullState[15];
9064 solverState[2] = fullState[16];
9065 solverState[3] = fullState[17];
9066 solverState[4] = fullState[18];
9067 solverState[5] = fullState[19];
9068 solverState[6] = fullState[20];
9069 solverState[7] = fullState[21];
9070 solverState[8] = fullState[22];
9071 solverState[9] = fullState[25];
9072 solverState[10] = fullState[26];
9073 solverState[11] = fullState[27];
9074 solverState[12] = fullState[28];
9075 solverState[13] = fullState[29];
9076 solverState[14] = fullState[30];
9077 solverState[15] = fullState[31];
9078 solverState[16] = fullState[32];
9079 solverState[17] = fullState[33];
9080 solverState[18] = fullState[34];
9081 solverState[19] = fullState[35];
9082 solverState[20] = fullState[36];
9083 solverState[21] = fullState[37];
9084 solverState[22] = fullState[38];
9085 solverState[23] = fullState[39];
9086 solverState[24] = fullState[40];
9087 solverState[25] = fullState[41];
9088 solverState[26] = fullState[42];
9089 solverState[27] = fullState[43];
9090 solverState[28] = fullState[44];
9091 solverState[29] = fullState[45];
9092 solverState[30] = fullState[46];
9093 solverState[31] = fullState[47];
9094 solverState[32] = fullState[48];
9095 solverState[33] = fullState[49];
9096 solverState[34] = fullState[50];
9097 solverState[35] = fullState[51];
9098 solverState[36] = fullState[52];
9099 solverState[37] = fullState[55];
9100 solverState[38] = fullState[56];
9101 solverState[39] = fullState[57];
9102 solverState[40] = fullState[58];
9103 solverState[41] = fullState[59];
9104 solverState[42] = fullState[60];
9105 solverState[43] = fullState[61];
9106 solverState[44] = fullState[62];
9107 solverState[45] = fullState[63];
9108 solverState[46] = fullState[66];
9109 solverState[47] = fullState[67];
9110 solverState[48] = fullState[68];
9111 solverState[49] = fullState[69];
9112 solverState[50] = fullState[70];
9113 solverState[51] = fullState[71];
9114 solverState[52] = fullState[72];
9115 solverState[53] = fullState[73];
9116 solverState[54] = fullState[74];
9117 solverState[55] = fullState[77];
9118 solverState[56] = fullState[78];
9119 solverState[57] = fullState[79];
9120 solverState[58] = fullState[80];
9121 solverState[59] = fullState[81];
9122 solverState[60] = fullState[82];
9123 solverState[61] = fullState[83];
9124 solverState[62] = fullState[84];
9125 solverState[63] = fullState[85];
9126 solverState[64] = fullState[88];
9127 solverState[65] = fullState[89];
9128 solverState[66] = fullState[90];
9129 solverState[67] = fullState[91];
9130 solverState[68] = fullState[92];
9131 solverState[69] = fullState[93];
9132 solverState[70] = fullState[94];
9133 solverState[71] = fullState[95];
9134 solverState[72] = fullState[96];
9135}
9136
9137int PlatformAssem_f0ca4364_1_isPositionViolation(const void *mech, const double *
9138 rtdv, const int *eqnEnableFlags, const double *state)
9139{
9140 int ii[3];
9141 double xx[151];
9142 (void) mech;
9143 (void) rtdv;
9144 (void) eqnEnableFlags;
9145 xx[0] = 0.5;
9146 xx[1] = xx[0] * state[43];
9147 xx[2] = cos(xx[1]);
9148 xx[3] = xx[0] * state[25];
9149 xx[4] = sin(xx[3]);
9150 xx[5] = 0.7058357201813958;
9151 xx[6] = xx[0] * state[23];
9152 xx[7] = cos(xx[6]);
9153 xx[8] = 0.7058407546227096;
9154 xx[9] = sin(xx[6]);
9155 xx[6] = xx[5] * xx[7] + xx[8] * xx[9];
9156 xx[10] = xx[5] * xx[9] - xx[8] * xx[7];
9157 xx[11] = cos(xx[3]);
9158 xx[3] = 0.04233709306330295;
9159 xx[12] = 0.04233598682685397;
9160 xx[13] = xx[3] * xx[7] + xx[12] * xx[9];
9161 xx[14] = xx[3] * xx[9] - xx[12] * xx[7];
9162 xx[15] = - (xx[4] * xx[6] - xx[10] * xx[11]);
9163 xx[16] = - (xx[11] * xx[13] + xx[14] * xx[4]);
9164 xx[17] = xx[4] * xx[13] - xx[14] * xx[11];
9165 xx[18] = xx[10] * xx[4] + xx[11] * xx[6];
9166 xx[7] = 3.980251324392935e-7;
9167 xx[9] = 0.999999999999921;
9168 xx[19] = xx[7] * state[30] - xx[9] * state[27];
9169 xx[20] = - (xx[7] * state[29] + xx[9] * state[28]);
9170 xx[21] = - (xx[9] * state[29] - xx[7] * state[28]);
9171 xx[22] = - (xx[7] * state[27] + xx[9] * state[30]);
9172 pm_math_quatCompose(xx + 15, xx + 19, xx + 23);
9173 xx[27] = 3.980251340548381e-7;
9174 xx[28] = xx[9] * state[37] - xx[27] * state[34];
9175 xx[29] = xx[9] * state[36] - xx[27] * state[35];
9176 xx[30] = - (xx[27] * state[36] + xx[9] * state[35]);
9177 xx[31] = - (xx[27] * state[37] + xx[9] * state[34]);
9178 pm_math_quatCompose(xx + 23, xx + 28, xx + 32);
9179 xx[27] = 0.3535533905932732;
9180 xx[36] = xx[0] * state[41];
9181 xx[37] = sin(xx[36]);
9182 xx[38] = 0.8660254037844377 * xx[37];
9183 xx[39] = xx[27] * xx[38];
9184 xx[40] = 0.6123724356957949;
9185 xx[41] = 0.5000000000000017 * xx[37];
9186 xx[37] = xx[40] * xx[41];
9187 xx[42] = cos(xx[36]);
9188 xx[36] = xx[40] * xx[42];
9189 xx[43] = xx[39] + xx[37] - xx[36];
9190 xx[44] = xx[40] * xx[38];
9191 xx[38] = xx[27] * xx[42];
9192 xx[42] = xx[27] * xx[41];
9193 xx[41] = xx[44] + xx[38] - xx[42];
9194 xx[45] = xx[38] - xx[44] + xx[42];
9195 xx[38] = xx[37] + xx[36] + xx[39];
9196 xx[46] = xx[43];
9197 xx[47] = xx[41];
9198 xx[48] = xx[45];
9199 xx[49] = xx[38];
9200 pm_math_quatCompose(xx + 32, xx + 46, xx + 50);
9201 xx[36] = sin(xx[1]);
9202 xx[46] = xx[2] * xx[50] + xx[53] * xx[36];
9203 xx[47] = xx[2] * xx[51] - xx[52] * xx[36];
9204 xx[48] = xx[2] * xx[52] + xx[51] * xx[36];
9205 xx[49] = xx[2] * xx[53] - xx[50] * xx[36];
9206 xx[1] = 7.599121945184391e-12;
9207 xx[37] = 5.036130209737022e-12;
9208 xx[39] = 5.192027881355888e-12;
9209 xx[54] = - xx[1];
9210 xx[55] = xx[37];
9211 xx[56] = - xx[39];
9212 pm_math_quatXform(xx + 46, xx + 54, xx + 57);
9213 xx[42] = 2.0;
9214 xx[44] = 2.191920996097441e-12;
9215 xx[46] = xx[44] * xx[36];
9216 xx[47] = 3.368449963403463e-13 * xx[36];
9217 xx[60] = - (0.02539999999966131 + xx[42] * (xx[2] * xx[46] + xx[47] * xx[36]));
9218 xx[61] = (xx[46] * xx[36] - xx[2] * xx[47]) * xx[42] - xx[44];
9219 xx[62] = - 0.1524264000010511;
9220 pm_math_quatXform(xx + 50, xx + 60, xx + 46);
9221 xx[2] = 0.09621024525612519;
9222 xx[36] = xx[2] * xx[45];
9223 xx[60] = xx[41];
9224 xx[61] = xx[45];
9225 xx[62] = xx[38];
9226 xx[44] = 0.1158410329922703;
9227 xx[49] = xx[44] * xx[38] - xx[41] * xx[2];
9228 xx[2] = xx[44] * xx[45];
9229 xx[63] = xx[36];
9230 xx[64] = xx[49];
9231 xx[65] = - xx[2];
9232 pm_math_cross3(xx + 60, xx + 63, xx + 66);
9233 xx[60] = - (0.1158410329997535 + (xx[36] * xx[43] + xx[66]) * xx[42]);
9234 xx[61] = 5.088251355846174e-12 - (xx[43] * xx[49] + xx[67]) * xx[42];
9235 xx[62] = - (0.1002102452613437 + xx[42] * (xx[68] - xx[2] * xx[43]));
9236 pm_math_quatXform(xx + 32, xx + 60, xx + 43);
9237 xx[2] = 3.641924106626229e-8;
9238 xx[32] = xx[1];
9239 xx[33] = - xx[37];
9240 xx[34] = xx[39];
9241 pm_math_quatXform(xx + 28, xx + 32, xx + 35);
9242 xx[1] = 0.04574999999998041;
9243 xx[28] = 2.92603149291605e-7;
9244 xx[29] = xx[2] + xx[35];
9245 xx[30] = xx[1] + xx[36];
9246 xx[31] = xx[28] + xx[37];
9247 pm_math_quatXform(xx + 23, xx + 29, xx + 32);
9248 xx[23] = 3.641162862673871e-8;
9249 xx[24] = 0.04575000000717538;
9250 xx[25] = - 2.926046524752066e-7;
9251 pm_math_quatXform(xx + 19, xx + 23, xx + 29);
9252 pm_math_quatXform(xx + 15, xx + 29, xx + 19);
9253 xx[15] = xx[13];
9254 xx[16] = xx[10];
9255 xx[17] = xx[6];
9256 xx[18] = xx[14];
9257 xx[22] = 9.83617579279345e-12;
9258 xx[26] = 3.107391981487723e-12 * xx[4] - xx[22] * xx[11];
9259 xx[29] = 7.175000002356807e-3;
9260 xx[35] = xx[42] * xx[26] * xx[4] + 0.03194045366784892;
9261 xx[36] = xx[42] * xx[26] * xx[11] + xx[22];
9262 xx[37] = 8.762500002356819e-3 - (xx[11] * xx[29] * xx[11] + xx[29] * xx[4] *
9263 xx[4]) * xx[42];
9264 pm_math_quatXform(xx + 15, xx + 35, xx + 29);
9265 xx[15] = xx[10];
9266 xx[16] = xx[6];
9267 xx[17] = xx[14];
9268 xx[4] = 1.5875e-3;
9269 xx[11] = xx[4] * xx[6];
9270 xx[18] = 0.02520954632904373;
9271 xx[22] = xx[10] * xx[4] - xx[14] * xx[18];
9272 xx[10] = xx[18] * xx[6];
9273 xx[35] = - xx[11];
9274 xx[36] = xx[22];
9275 xx[37] = xx[10];
9276 pm_math_cross3(xx + 15, xx + 35, xx + 60);
9277 xx[6] = xx[43] + xx[32] + xx[19] + xx[29] - (xx[60] - xx[11] * xx[13]) * xx[42]
9278 - 0.04299719117889741;
9279 xx[11] = 0.5901036711621467;
9280 xx[14] = xx[0] * state[64];
9281 xx[15] = cos(xx[14]);
9282 xx[16] = 0.5901074779979936;
9283 xx[17] = sin(xx[14]);
9284 xx[14] = xx[11] * xx[15] - xx[16] * xx[17];
9285 xx[26] = xx[0] * state[66];
9286 xx[35] = sin(xx[26]);
9287 xx[36] = cos(xx[26]);
9288 xx[26] = xx[16] * xx[15] + xx[11] * xx[17];
9289 xx[11] = 0.389585375426561;
9290 xx[16] = 0.3895819001770367;
9291 xx[37] = xx[11] * xx[15] - xx[16] * xx[17];
9292 xx[38] = xx[16] * xx[15] + xx[11] * xx[17];
9293 xx[63] = - (xx[14] * xx[35] + xx[36] * xx[26]);
9294 xx[64] = - (xx[37] * xx[36] - xx[35] * xx[38]);
9295 xx[65] = xx[37] * xx[35] + xx[36] * xx[38];
9296 xx[66] = xx[14] * xx[36] - xx[35] * xx[26];
9297 xx[67] = xx[7] * state[71] - xx[9] * state[68];
9298 xx[68] = - (xx[7] * state[70] + xx[9] * state[69]);
9299 xx[69] = - (xx[9] * state[70] - xx[7] * state[69]);
9300 xx[70] = - (xx[7] * state[68] + xx[9] * state[71]);
9301 pm_math_quatCompose(xx + 63, xx + 67, xx + 71);
9302 xx[15] = xx[2];
9303 xx[16] = xx[1];
9304 xx[17] = xx[28];
9305 pm_math_quatXform(xx + 71, xx + 15, xx + 75);
9306 pm_math_quatXform(xx + 67, xx + 23, xx + 71);
9307 pm_math_quatXform(xx + 63, xx + 71, xx + 67);
9308 xx[1] = - xx[26];
9309 xx[2] = - xx[38];
9310 xx[63] = xx[37];
9311 xx[64] = xx[1];
9312 xx[65] = xx[14];
9313 xx[66] = xx[2];
9314 xx[11] = 6.924287580811761e-12;
9315 xx[28] = xx[11] * xx[36] + 1.024070757638107e-11 * xx[35];
9316 xx[39] = 4.000000007367204e-3;
9317 xx[70] = xx[42] * xx[28] * xx[35] + 0.03194045366071555;
9318 xx[71] = xx[42] * xx[28] * xx[36] - xx[11];
9319 xx[72] = (xx[36] * xx[39] * xx[36] + xx[39] * xx[35] * xx[35]) * xx[42] -
9320 2.412500007367193e-3;
9321 pm_math_quatXform(xx + 63, xx + 70, xx + 78);
9322 xx[11] = 1.587500000000011e-3;
9323 xx[28] = xx[14] * xx[11];
9324 xx[63] = xx[1];
9325 xx[64] = xx[14];
9326 xx[65] = xx[2];
9327 xx[1] = xx[18] * xx[38] + xx[11] * xx[26];
9328 xx[2] = xx[14] * xx[18];
9329 xx[70] = xx[28];
9330 xx[71] = xx[1];
9331 xx[72] = xx[2];
9332 pm_math_cross3(xx + 63, xx + 70, xx + 81);
9333 xx[14] = xx[44] + xx[33] + xx[20] + xx[30] - (xx[22] * xx[13] + xx[61]) * xx
9334 [42] + 0.02992188481855372;
9335 xx[19] = xx[45] + xx[34] + xx[21] + xx[31] - xx[42] * (xx[62] + xx[10] * xx[13])
9336 + 0.1428830924490354;
9337 xx[10] = xx[0] * state[45];
9338 xx[13] = sin(xx[10]);
9339 xx[20] = xx[40] * xx[13];
9340 xx[21] = cos(xx[10]);
9341 xx[10] = xx[40] * xx[21];
9342 xx[22] = xx[27] * xx[21];
9343 xx[21] = xx[27] * xx[13];
9344 xx[29] = xx[20] - xx[10];
9345 xx[30] = - (xx[22] + xx[21]);
9346 xx[31] = xx[21] - xx[22];
9347 xx[32] = - (xx[20] + xx[10]);
9348 pm_math_quatCompose(xx + 50, xx + 29, xx + 33);
9349 pm_math_quatXform(xx + 33, xx + 54, xx + 20);
9350 xx[33] = - 1.121202762681406e-11;
9351 xx[34] = - 6.145027516349377e-13;
9352 xx[35] = - 3.999999999522439e-3;
9353 pm_math_quatXform(xx + 29, xx + 33, xx + 38);
9354 xx[29] = 0.1412410329922704 - xx[38];
9355 xx[30] = - xx[39];
9356 xx[31] = 0.05221615474387575 - xx[40];
9357 pm_math_quatXform(xx + 50, xx + 29, xx + 32);
9358 xx[10] = xx[0] * state[55];
9359 xx[13] = sin(xx[10]);
9360 xx[26] = xx[0] * state[53];
9361 xx[27] = cos(xx[26]);
9362 xx[29] = sin(xx[26]);
9363 xx[26] = xx[5] * xx[27] + xx[8] * xx[29];
9364 xx[30] = xx[5] * xx[29] - xx[8] * xx[27];
9365 xx[5] = cos(xx[10]);
9366 xx[8] = xx[3] * xx[27] + xx[12] * xx[29];
9367 xx[10] = xx[3] * xx[29] - xx[12] * xx[27];
9368 xx[38] = - (xx[13] * xx[26] - xx[30] * xx[5]);
9369 xx[39] = - (xx[5] * xx[8] + xx[10] * xx[13]);
9370 xx[40] = xx[13] * xx[8] - xx[10] * xx[5];
9371 xx[41] = xx[30] * xx[13] + xx[5] * xx[26];
9372 xx[60] = xx[7] * state[60] - xx[9] * state[57];
9373 xx[61] = - (xx[7] * state[59] + xx[9] * state[58]);
9374 xx[62] = - (xx[9] * state[59] - xx[7] * state[58]);
9375 xx[63] = - (xx[7] * state[57] + xx[9] * state[60]);
9376 pm_math_quatCompose(xx + 38, xx + 60, xx + 70);
9377 pm_math_quatXform(xx + 70, xx + 15, xx + 43);
9378 pm_math_quatXform(xx + 60, xx + 23, xx + 64);
9379 pm_math_quatXform(xx + 38, xx + 64, xx + 60);
9380 xx[38] = xx[8];
9381 xx[39] = xx[30];
9382 xx[40] = xx[26];
9383 xx[41] = xx[10];
9384 xx[3] = 5.443558296964576e-12;
9385 xx[12] = xx[3] * xx[5] - 9.27756931389703e-12 * xx[13];
9386 xx[27] = 7.174999998974562e-3;
9387 xx[63] = xx[42] * xx[12] * xx[13] + 0.03194045368023388;
9388 xx[64] = xx[42] * xx[12] * xx[5] - xx[3];
9389 xx[65] = 8.762499998974573e-3 - (xx[5] * xx[27] * xx[5] + xx[27] * xx[13] *
9390 xx[13]) * xx[42];
9391 pm_math_quatXform(xx + 38, xx + 63, xx + 70);
9392 xx[38] = xx[30];
9393 xx[39] = xx[26];
9394 xx[40] = xx[10];
9395 xx[3] = xx[4] * xx[26];
9396 xx[5] = 0.02520954632904374;
9397 xx[12] = xx[30] * xx[4] - xx[10] * xx[5];
9398 xx[4] = xx[5] * xx[26];
9399 xx[29] = - xx[3];
9400 xx[30] = xx[12];
9401 xx[31] = xx[4];
9402 pm_math_cross3(xx + 38, xx + 29, xx + 63);
9403 xx[5] = 0.3535533905932758;
9404 xx[10] = xx[0] * state[47];
9405 xx[13] = cos(xx[10]);
9406 xx[26] = xx[5] * xx[13];
9407 xx[27] = sin(xx[10]);
9408 xx[10] = xx[5] * xx[27];
9409 xx[29] = 0.6123724356957934;
9410 xx[30] = xx[29] * xx[27];
9411 xx[27] = xx[29] * xx[13];
9412 xx[38] = - (xx[26] + xx[10]);
9413 xx[39] = xx[30] - xx[27];
9414 xx[40] = - (xx[27] + xx[30]);
9415 xx[41] = xx[10] - xx[26];
9416 pm_math_quatCompose(xx + 50, xx + 38, xx + 84);
9417 pm_math_quatXform(xx + 84, xx + 54, xx + 88);
9418 xx[84] = 3.881762117297072e-12;
9419 xx[85] = - 3.80025733104361e-12;
9420 xx[86] = 3.999999998874377e-3;
9421 pm_math_quatXform(xx + 38, xx + 84, xx + 91);
9422 xx[38] = - (0.1412410329922711 + xx[91]);
9423 xx[39] = - xx[92];
9424 xx[40] = 0.05221615474387407 - xx[93];
9425 pm_math_quatXform(xx + 50, xx + 38, xx + 84);
9426 xx[10] = 0.6324445710612965;
9427 xx[13] = xx[0] * state[75];
9428 xx[26] = sin(xx[13]);
9429 xx[27] = 0.6324396579890005;
9430 xx[30] = cos(xx[13]);
9431 xx[13] = xx[10] * xx[26] - xx[27] * xx[30];
9432 xx[31] = xx[0] * state[77];
9433 xx[35] = sin(xx[31]);
9434 xx[36] = cos(xx[31]);
9435 xx[31] = xx[10] * xx[30] + xx[27] * xx[26];
9436 xx[10] = 0.3162553791961485;
9437 xx[27] = 0.3162538200043588;
9438 xx[38] = xx[10] * xx[30] - xx[27] * xx[26];
9439 xx[39] = xx[27] * xx[30] + xx[10] * xx[26];
9440 xx[91] = - (xx[13] * xx[35] - xx[36] * xx[31]);
9441 xx[92] = - (xx[38] * xx[36] - xx[35] * xx[39]);
9442 xx[93] = xx[38] * xx[35] + xx[36] * xx[39];
9443 xx[94] = xx[35] * xx[31] + xx[13] * xx[36];
9444 xx[95] = xx[7] * state[82] - xx[9] * state[79];
9445 xx[96] = - (xx[7] * state[81] + xx[9] * state[80]);
9446 xx[97] = - (xx[9] * state[81] - xx[7] * state[80]);
9447 xx[98] = - (xx[7] * state[79] + xx[9] * state[82]);
9448 pm_math_quatCompose(xx + 91, xx + 95, xx + 99);
9449 pm_math_quatXform(xx + 99, xx + 15, xx + 103);
9450 pm_math_quatXform(xx + 95, xx + 23, xx + 99);
9451 pm_math_quatXform(xx + 91, xx + 99, xx + 95);
9452 xx[10] = - xx[39];
9453 xx[91] = xx[38];
9454 xx[92] = xx[31];
9455 xx[93] = xx[13];
9456 xx[94] = xx[10];
9457 xx[26] = 9.862118968695376e-13;
9458 xx[27] = 5.157931604049537e-12 * xx[35] - xx[26] * xx[36];
9459 xx[30] = 3.99999999470772e-3;
9460 xx[98] = xx[42] * xx[27] * xx[35] + 0.03194045366579833;
9461 xx[99] = xx[42] * xx[27] * xx[36] + xx[26];
9462 xx[100] = (xx[36] * xx[30] * xx[36] + xx[30] * xx[35] * xx[35]) * xx[42] -
9463 2.412499994707708e-3;
9464 pm_math_quatXform(xx + 91, xx + 98, xx + 106);
9465 xx[26] = xx[13] * xx[11];
9466 xx[91] = xx[31];
9467 xx[92] = xx[13];
9468 xx[93] = xx[10];
9469 xx[10] = xx[18] * xx[39] - xx[11] * xx[31];
9470 xx[27] = xx[13] * xx[18];
9471 xx[39] = xx[26];
9472 xx[40] = xx[10];
9473 xx[41] = xx[27];
9474 pm_math_cross3(xx + 91, xx + 39, xx + 98);
9475 xx[13] = xx[0] * state[49];
9476 xx[30] = cos(xx[13]);
9477 xx[31] = xx[5] * xx[30];
9478 xx[35] = sin(xx[13]);
9479 xx[13] = xx[5] * xx[35];
9480 xx[5] = xx[29] * xx[30];
9481 xx[30] = xx[29] * xx[35];
9482 xx[91] = xx[31] + xx[13];
9483 xx[92] = xx[5] - xx[30];
9484 xx[93] = xx[5] + xx[30];
9485 xx[94] = xx[31] - xx[13];
9486 pm_math_quatCompose(xx + 50, xx + 91, xx + 109);
9487 pm_math_quatXform(xx + 109, xx + 54, xx + 29);
9488 xx[39] = - 5.998698970888227e-12;
9489 xx[40] = - 6.30935626036444e-12;
9490 xx[41] = 4.000000001735564e-3;
9491 pm_math_quatXform(xx + 91, xx + 39, xx + 109);
9492 xx[39] = - (0.1158410329922713 + xx[109]);
9493 xx[40] = - xx[110];
9494 xx[41] = 0.09621024525612379 - xx[111];
9495 pm_math_quatXform(xx + 50, xx + 39, xx + 91);
9496 xx[5] = 0.6324396579890008;
9497 xx[13] = xx[0] * state[86];
9498 xx[35] = cos(xx[13]);
9499 xx[36] = 0.6324445710612973;
9500 xx[39] = sin(xx[13]);
9501 xx[13] = xx[5] * xx[35] - xx[36] * xx[39];
9502 xx[40] = xx[0] * state[88];
9503 xx[41] = sin(xx[40]);
9504 xx[49] = cos(xx[40]);
9505 xx[40] = xx[36] * xx[35] + xx[5] * xx[39];
9506 xx[5] = 0.3162538200043575;
9507 xx[36] = 0.3162553791961478;
9508 xx[66] = xx[5] * xx[39] - xx[36] * xx[35];
9509 xx[73] = xx[5] * xx[35] + xx[36] * xx[39];
9510 xx[109] = - (xx[13] * xx[41] + xx[49] * xx[40]);
9511 xx[110] = - (xx[66] * xx[49] + xx[41] * xx[73]);
9512 xx[111] = xx[66] * xx[41] - xx[49] * xx[73];
9513 xx[112] = xx[13] * xx[49] - xx[41] * xx[40];
9514 xx[113] = xx[7] * state[93] - xx[9] * state[90];
9515 xx[114] = - (xx[7] * state[92] + xx[9] * state[91]);
9516 xx[115] = - (xx[9] * state[92] - xx[7] * state[91]);
9517 xx[116] = - (xx[7] * state[90] + xx[9] * state[93]);
9518 pm_math_quatCompose(xx + 109, xx + 113, xx + 117);
9519 pm_math_quatXform(xx + 117, xx + 15, xx + 121);
9520 pm_math_quatXform(xx + 113, xx + 23, xx + 117);
9521 pm_math_quatXform(xx + 109, xx + 117, xx + 113);
9522 xx[5] = - xx[40];
9523 xx[109] = xx[66];
9524 xx[110] = xx[5];
9525 xx[111] = xx[13];
9526 xx[112] = xx[73];
9527 xx[35] = 8.497959654019115e-12;
9528 xx[36] = 1.600627075326599e-13 * xx[41] - xx[35] * xx[49];
9529 xx[39] = 3.999999996613603e-3;
9530 xx[116] = xx[42] * xx[36] * xx[41] + 0.03194045367079622;
9531 xx[117] = xx[42] * xx[36] * xx[49] + xx[35];
9532 xx[118] = (xx[49] * xx[39] * xx[49] + xx[39] * xx[41] * xx[41]) * xx[42] -
9533 2.412499996613564e-3;
9534 pm_math_quatXform(xx + 109, xx + 116, xx + 124);
9535 xx[35] = 1.587499999999983e-3;
9536 xx[36] = xx[13] * xx[35];
9537 xx[109] = xx[5];
9538 xx[110] = xx[13];
9539 xx[111] = xx[73];
9540 xx[5] = xx[35] * xx[40] - xx[18] * xx[73];
9541 xx[35] = xx[13] * xx[18];
9542 xx[39] = xx[36];
9543 xx[40] = xx[5];
9544 xx[41] = xx[35];
9545 pm_math_cross3(xx + 109, xx + 39, xx + 116);
9546 xx[13] = xx[0] * state[51];
9547 xx[39] = cos(xx[13]);
9548 xx[40] = sin(xx[13]);
9549 xx[109] = xx[39] * xx[50] + xx[53] * xx[40];
9550 xx[110] = xx[39] * xx[51] - xx[52] * xx[40];
9551 xx[111] = xx[39] * xx[52] + xx[51] * xx[40];
9552 xx[112] = xx[39] * xx[53] - xx[50] * xx[40];
9553 pm_math_quatXform(xx + 109, xx + 54, xx + 127);
9554 xx[13] = 6.817225262079063e-12 * xx[40];
9555 xx[41] = 5.61723311615081e-12;
9556 xx[49] = xx[41] * xx[40];
9557 xx[54] = 0.02540000000681907 - xx[42] * (xx[13] * xx[40] - xx[39] * xx[49]);
9558 xx[55] = xx[41] - (xx[39] * xx[13] + xx[49] * xx[40]) * xx[42];
9559 xx[56] = - 0.152426400001803;
9560 pm_math_quatXform(xx + 50, xx + 54, xx + 39);
9561 xx[13] = 0.5901036711621462;
9562 xx[49] = xx[0] * state[12];
9563 xx[50] = cos(xx[49]);
9564 xx[51] = 0.5901074779979933;
9565 xx[52] = sin(xx[49]);
9566 xx[49] = xx[13] * xx[50] - xx[51] * xx[52];
9567 xx[53] = xx[0] * state[14];
9568 xx[0] = sin(xx[53]);
9569 xx[54] = cos(xx[53]);
9570 xx[53] = xx[51] * xx[50] + xx[13] * xx[52];
9571 xx[13] = 0.3895853754265615;
9572 xx[51] = 0.389581900177037;
9573 xx[55] = xx[13] * xx[50] - xx[51] * xx[52];
9574 xx[56] = xx[51] * xx[50] + xx[13] * xx[52];
9575 xx[109] = - (xx[49] * xx[0] + xx[54] * xx[53]);
9576 xx[110] = - (xx[55] * xx[54] - xx[0] * xx[56]);
9577 xx[111] = xx[55] * xx[0] + xx[54] * xx[56];
9578 xx[112] = xx[49] * xx[54] - xx[0] * xx[53];
9579 xx[130] = xx[7] * state[19] - xx[9] * state[16];
9580 xx[131] = - (xx[7] * state[18] + xx[9] * state[17]);
9581 xx[132] = - (xx[9] * state[18] - xx[7] * state[17]);
9582 xx[133] = - (xx[7] * state[16] + xx[9] * state[19]);
9583 pm_math_quatCompose(xx + 109, xx + 130, xx + 134);
9584 pm_math_quatXform(xx + 134, xx + 15, xx + 50);
9585 pm_math_quatXform(xx + 130, xx + 23, xx + 15);
9586 pm_math_quatXform(xx + 109, xx + 15, xx + 23);
9587 xx[7] = - xx[53];
9588 xx[9] = - xx[56];
9589 xx[109] = xx[55];
9590 xx[110] = xx[7];
9591 xx[111] = xx[49];
9592 xx[112] = xx[9];
9593 xx[13] = 5.376764528053357e-12;
9594 xx[15] = xx[13] * xx[54] + 7.748428954013064e-12 * xx[0];
9595 xx[16] = 4.0000000045273e-3;
9596 xx[130] = 0.03194045367870467 - xx[42] * xx[15] * xx[0];
9597 xx[131] = xx[13] - xx[42] * xx[15] * xx[54];
9598 xx[132] = (xx[54] * xx[16] * xx[54] + xx[16] * xx[0] * xx[0]) * xx[42] -
9599 2.412500004527289e-3;
9600 pm_math_quatXform(xx + 109, xx + 130, xx + 15);
9601 xx[0] = xx[49] * xx[11];
9602 xx[109] = xx[7];
9603 xx[110] = xx[49];
9604 xx[111] = xx[9];
9605 xx[7] = xx[18] * xx[56] + xx[11] * xx[53];
9606 xx[9] = xx[49] * xx[18];
9607 xx[130] = xx[0];
9608 xx[131] = xx[7];
9609 xx[132] = xx[9];
9610 pm_math_cross3(xx + 109, xx + 130, xx + 133);
9611 xx[136] = fabs(xx[57] + xx[46] + xx[6] - (xx[75] + xx[67] + xx[78] - (xx[37] *
9612 xx[28] + xx[81]) * xx[42]) - 0.1417622656843958);
9613 xx[137] = fabs(xx[58] + xx[47] + xx[14] - (xx[76] + xx[68] + xx[79] - (xx[37] *
9614 xx[1] + xx[82]) * xx[42]) - 0.02992349485130436);
9615 xx[138] = fabs(xx[59] + xx[48] + xx[19] - (xx[77] + xx[69] + xx[80] - xx[42] *
9616 (xx[83] + xx[37] * xx[2])) + 0.1065919054848736);
9617 xx[139] = fabs(xx[20] + xx[32] + xx[6] - (xx[43] + xx[60] + xx[70] - (xx[63] -
9618 xx[3] * xx[8]) * xx[42]) - 0.05787438452398606);
9619 xx[140] = fabs(xx[21] + xx[33] + xx[14] - (xx[44] + xx[61] + xx[71] - (xx[8] *
9620 xx[12] + xx[64]) * xx[42]) - 0.02992259737327991);
9621 xx[141] = fabs(xx[22] + xx[34] + xx[19] - (xx[45] + xx[62] + xx[72] - xx[42] *
9622 (xx[65] + xx[4] * xx[8])) - 0.1550274415345039);
9623 xx[142] = fabs(xx[88] + xx[84] + xx[6] - (xx[103] + xx[95] + xx[106] - (xx[38]
9624 * xx[26] + xx[98]) * xx[42]) + 0.06304794220310322);
9625 xx[143] = fabs(xx[89] + xx[85] + xx[14] - (xx[104] + xx[96] + xx[107] - (xx[38]
9626 * xx[10] + xx[99]) * xx[42]) - 0.02992204813763048);
9627 xx[144] = fabs(xx[90] + xx[86] + xx[19] - (xx[105] + xx[97] + xx[108] - xx[42]
9628 * (xx[100] + xx[38] * xx[27])) + 0.1313039406712666);
9629 xx[145] = fabs(xx[29] + xx[91] + xx[6] - (xx[121] + xx[113] + xx[124] - (xx[66]
9630 * xx[36] + xx[116]) * xx[42]) + 0.1240382406650065);
9631 xx[146] = fabs(xx[30] + xx[92] + xx[14] - (xx[122] + xx[114] + xx[125] - (xx
9632 [66] * xx[5] + xx[117]) * xx[42]) - 0.02992151662180351);
9633 xx[147] = fabs(xx[31] + xx[93] + xx[19] - (xx[123] + xx[115] + xx[126] - xx[42]
9634 * (xx[118] + xx[66] * xx[35])) + 0.04996916497694619);
9635 xx[148] = fabs(xx[127] + xx[39] + xx[6] - (xx[50] + xx[23] + xx[15] - (xx[55] *
9636 xx[0] + xx[133]) * xx[42]) - 0.1816563790182656);
9637 xx[149] = fabs(xx[128] + xx[40] + xx[14] - (xx[51] + xx[24] + xx[16] - (xx[55]
9638 * xx[7] + xx[134]) * xx[42]) - 0.02992367610368172);
9639 xx[150] = fabs(xx[129] + xx[41] + xx[19] - (xx[52] + xx[25] + xx[17] - xx[42] *
9640 (xx[135] + xx[55] * xx[9])) + 0.01321939793971065);
9641 ii[0] = 136;
9642
9643 {
9644 int ll;
9645 for (ll = 137; ll < 151; ++ll)
9646 if (xx[ll] > xx[ii[0]])
9647 ii[0] = ll;
9648 }
9649
9650 ii[0] -= 136;
9651 xx[0] = xx[136 + (ii[0])];
9652 xx[1] = xx[0] - 0.01;
9653 if (xx[1] < 0.0)
9654 ii[0] = -1;
9655 else if (xx[1] > 0.0)
9656 ii[0] = +1;
9657 else
9658 ii[0] = 0;
9659 ii[1] = ii[0];
9660 if (0 > ii[1])
9661 ii[1] = 0;
9662 return ii[1];
9663}
9664
9665int PlatformAssem_f0ca4364_1_isVelocityViolation(const void *mech, const double *
9666 rtdv, const int *eqnEnableFlags, const double *state)
9667{
9668 int ii[3];
9669 double xx[177];
9670 (void) mech;
9671 (void) rtdv;
9672 (void) eqnEnableFlags;
9673 xx[0] = 0.04233709306330295;
9674 xx[1] = 0.5;
9675 xx[2] = xx[1] * state[23];
9676 xx[3] = cos(xx[2]);
9677 xx[4] = 0.04233598682685397;
9678 xx[5] = sin(xx[2]);
9679 xx[2] = xx[0] * xx[3] + xx[4] * xx[5];
9680 xx[6] = 0.7058357201813958;
9681 xx[7] = 0.7058407546227096;
9682 xx[8] = xx[6] * xx[5] - xx[7] * xx[3];
9683 xx[9] = xx[6] * xx[3] + xx[7] * xx[5];
9684 xx[10] = xx[0] * xx[5] - xx[4] * xx[3];
9685 xx[11] = xx[2];
9686 xx[12] = xx[8];
9687 xx[13] = xx[9];
9688 xx[14] = xx[10];
9689 xx[3] = 3.980251324392935e-7;
9690 xx[5] = 0.999999999999921;
9691 xx[15] = xx[3] * state[30] - xx[5] * state[27];
9692 xx[16] = - (xx[3] * state[29] + xx[5] * state[28]);
9693 xx[17] = - (xx[5] * state[29] - xx[3] * state[28]);
9694 xx[18] = - (xx[3] * state[27] + xx[5] * state[30]);
9695 xx[19] = 3.980251340548381e-7;
9696 xx[20] = xx[5] * state[37] - xx[19] * state[34];
9697 xx[21] = xx[5] * state[36] - xx[19] * state[35];
9698 xx[22] = - (xx[19] * state[36] + xx[5] * state[35]);
9699 xx[23] = - (xx[19] * state[37] + xx[5] * state[34]);
9700 xx[19] = xx[1] * state[43];
9701 xx[24] = cos(xx[19]);
9702 xx[25] = 0.3535533905932732;
9703 xx[26] = 0.8660254037844377;
9704 xx[27] = xx[1] * state[41];
9705 xx[28] = sin(xx[27]);
9706 xx[29] = xx[26] * xx[28];
9707 xx[30] = xx[25] * xx[29];
9708 xx[31] = 0.6123724356957949;
9709 xx[32] = 0.5000000000000017;
9710 xx[33] = xx[32] * xx[28];
9711 xx[28] = xx[31] * xx[33];
9712 xx[34] = cos(xx[27]);
9713 xx[27] = xx[31] * xx[34];
9714 xx[35] = xx[30] + xx[28] - xx[27];
9715 xx[36] = sin(xx[19]);
9716 xx[19] = xx[28] + xx[27] + xx[30];
9717 xx[27] = xx[31] * xx[29];
9718 xx[28] = xx[25] * xx[34];
9719 xx[29] = xx[25] * xx[33];
9720 xx[30] = xx[27] + xx[28] - xx[29];
9721 xx[33] = xx[28] - xx[27] + xx[29];
9722 xx[37] = xx[24] * xx[35] + xx[36] * xx[19];
9723 xx[38] = xx[30] * xx[24] - xx[36] * xx[33];
9724 xx[39] = xx[24] * xx[33] + xx[30] * xx[36];
9725 xx[40] = xx[24] * xx[19] - xx[36] * xx[35];
9726 pm_math_quatCompose(xx + 20, xx + 37, xx + 41);
9727 pm_math_quatCompose(xx + 15, xx + 41, xx + 45);
9728 xx[27] = xx[1] * state[25];
9729 xx[28] = sin(xx[27]);
9730 xx[29] = cos(xx[27]);
9731 xx[27] = xx[47] * xx[28] - xx[29] * xx[46];
9732 xx[34] = xx[48] * xx[28] - xx[29] * xx[45];
9733 xx[49] = xx[45] * xx[28] + xx[29] * xx[48];
9734 xx[50] = xx[29] * xx[47] + xx[46] * xx[28];
9735 xx[51] = - xx[27];
9736 xx[52] = xx[34];
9737 xx[53] = xx[49];
9738 xx[54] = - xx[50];
9739 pm_math_quatCompose(xx + 11, xx + 51, xx + 55);
9740 xx[51] = 2.0;
9741 xx[52] = xx[49] * state[24];
9742 xx[53] = xx[34] * state[24];
9743 xx[54] = xx[46] * state[26];
9744 xx[59] = xx[47] * state[26];
9745 xx[60] = xx[3] * state[31];
9746 xx[61] = xx[3] * state[32];
9747 xx[62] = state[31] - (xx[3] * xx[60] - xx[5] * xx[61]) * xx[51];
9748 xx[63] = state[32] - xx[51] * (xx[5] * xx[60] + xx[3] * xx[61]);
9749 xx[64] = state[33];
9750 pm_math_quatInverseXform(xx + 41, xx + 62, xx + 65);
9751 xx[41] = state[38];
9752 xx[42] = state[39];
9753 xx[43] = state[40];
9754 pm_math_quatInverseXform(xx + 37, xx + 41, xx + 68);
9755 xx[37] = xx[26] * state[42];
9756 xx[26] = xx[37] * xx[36];
9757 xx[38] = xx[32] * state[42];
9758 xx[71] = xx[51] * (xx[52] * xx[27] - xx[50] * xx[53]) + xx[51] * (xx[48] * xx
9759 [54] - xx[45] * xx[59]) + xx[65] + xx[68] + xx[51] * xx[26] * xx[36] - xx[37];
9760 xx[72] = (xx[45] * xx[54] + xx[48] * xx[59]) * xx[51] + xx[66] + xx[69] - xx
9761 [51] * xx[24] * xx[26] - (xx[53] * xx[27] + xx[50] * xx[52]) * xx[51];
9762 xx[73] = state[24] - (xx[53] * xx[34] + xx[49] * xx[52]) * xx[51] + state[26]
9763 - (xx[46] * xx[54] + xx[47] * xx[59]) * xx[51] + xx[67] + xx[70] - (xx[38] +
9764 state[44]);
9765 xx[26] = 7.599121945184391e-12;
9766 xx[27] = 5.036130209737022e-12;
9767 xx[32] = 5.192027881355888e-12;
9768 xx[44] = - xx[26];
9769 xx[45] = xx[27];
9770 xx[46] = - xx[32];
9771 pm_math_cross3(xx + 71, xx + 44, xx + 47);
9772 pm_math_quatXform(xx + 55, xx + 47, xx + 52);
9773 xx[34] = 0.02520954632904373;
9774 xx[39] = xx[8] * xx[34];
9775 xx[40] = xx[10] * xx[34];
9776 xx[47] = xx[51] * (xx[39] * xx[9] - xx[40] * xx[2]) * state[24];
9777 xx[48] = 3.107391981487723e-12;
9778 xx[49] = 9.83617579279345e-12;
9779 xx[50] = xx[48] * xx[29] + xx[49] * xx[28];
9780 xx[55] = (xx[51] * xx[50] * xx[28] - xx[49]) * state[26];
9781 xx[56] = 3.641162862673871e-8;
9782 xx[57] = 0.04575000000717538;
9783 xx[58] = - 2.926046524752066e-7;
9784 pm_math_cross3(xx + 62, xx + 56, xx + 59);
9785 pm_math_quatXform(xx + 15, xx + 59, xx + 65);
9786 xx[59] = xx[26];
9787 xx[60] = - xx[27];
9788 xx[61] = xx[32];
9789 pm_math_cross3(xx + 41, xx + 59, xx + 68);
9790 pm_math_quatXform(xx + 20, xx + 68, xx + 71);
9791 xx[26] = 0.02540000000000025;
9792 xx[27] = xx[26] * xx[19];
9793 xx[32] = xx[30] * xx[26];
9794 xx[68] = xx[51] * (xx[27] * xx[35] - xx[32] * xx[33]) * state[42];
9795 xx[74] = xx[35];
9796 xx[75] = xx[30];
9797 xx[76] = xx[33];
9798 xx[77] = xx[19];
9799 xx[69] = 2.191920996097441e-12;
9800 xx[70] = xx[69] * xx[36];
9801 xx[78] = xx[70] * xx[36];
9802 xx[79] = 3.368449963403463e-13;
9803 xx[80] = xx[79] * xx[36];
9804 xx[81] = xx[24] * xx[80];
9805 xx[82] = xx[69] - (xx[78] - xx[81]) * xx[51];
9806 xx[83] = xx[24] * xx[70];
9807 xx[24] = xx[80] * xx[36];
9808 xx[36] = 0.02539999999999815 + xx[51] * (xx[83] + xx[24]) - xx[79];
9809 xx[70] = 0.1524264000010511;
9810 xx[84] = (xx[51] * (xx[78] - xx[81]) - xx[69]) * state[44] - xx[38] * xx[82];
9811 xx[85] = ((xx[83] + xx[24]) * xx[51] - xx[79]) * state[44] + xx[38] * xx[36] -
9812 xx[70] * xx[37];
9813 xx[86] = xx[37] * xx[82];
9814 pm_math_quatXform(xx + 74, xx + 84, xx + 78);
9815 xx[83] = - xx[36];
9816 xx[84] = - xx[82];
9817 xx[85] = - xx[70];
9818 pm_math_quatXform(xx + 74, xx + 83, xx + 86);
9819 xx[24] = 0.09621024525612519;
9820 xx[36] = xx[24] * xx[33];
9821 xx[81] = xx[30];
9822 xx[82] = xx[33];
9823 xx[83] = xx[19];
9824 xx[69] = 0.1158410329922703;
9825 xx[70] = xx[69] * xx[19] - xx[30] * xx[24];
9826 xx[24] = xx[69] * xx[33];
9827 xx[89] = xx[36];
9828 xx[90] = xx[70];
9829 xx[91] = - xx[24];
9830 pm_math_cross3(xx + 81, xx + 89, xx + 92);
9831 xx[69] = 0.1158410329997535 + (xx[36] * xx[35] + xx[92]) * xx[51];
9832 xx[36] = 5.088251355846174e-12 - (xx[35] * xx[70] + xx[93]) * xx[51];
9833 xx[70] = 0.1002102452613437 + xx[51] * (xx[94] - xx[24] * xx[35]);
9834 xx[81] = xx[86] - xx[69];
9835 xx[82] = xx[87] + xx[36];
9836 xx[83] = xx[88] - xx[70];
9837 pm_math_cross3(xx + 41, xx + 81, xx + 84);
9838 xx[24] = ((xx[27] * xx[19] + xx[30] * xx[32]) * xx[51] - xx[26]) * state[42];
9839 xx[26] = xx[51] * (xx[32] * xx[35] + xx[27] * xx[33]) * state[42];
9840 xx[87] = xx[68] + xx[78] + xx[84];
9841 xx[88] = xx[24] + xx[79] + xx[85];
9842 xx[89] = xx[80] - xx[26] + xx[86];
9843 pm_math_quatXform(xx + 20, xx + 87, xx + 78);
9844 pm_math_quatXform(xx + 20, xx + 81, xx + 84);
9845 xx[27] = 3.641924106626229e-8;
9846 pm_math_quatXform(xx + 20, xx + 59, xx + 81);
9847 xx[32] = xx[27] + xx[81];
9848 xx[59] = 0.04574999999998041;
9849 xx[60] = xx[59] + xx[82];
9850 xx[61] = 2.92603149291605e-7;
9851 xx[81] = xx[61] + xx[83];
9852 xx[87] = xx[84] + xx[32];
9853 xx[88] = xx[85] + xx[60];
9854 xx[89] = xx[86] + xx[81];
9855 pm_math_cross3(xx + 62, xx + 87, xx + 82);
9856 xx[90] = xx[71] + xx[78] + xx[82];
9857 xx[91] = xx[72] + xx[79] + xx[83];
9858 xx[92] = xx[73] + xx[80] + xx[84];
9859 pm_math_quatXform(xx + 15, xx + 90, xx + 78);
9860 pm_math_quatXform(xx + 15, xx + 87, xx + 82);
9861 pm_math_quatXform(xx + 15, xx + 56, xx + 85);
9862 xx[88] = xx[83] + xx[86];
9863 xx[89] = xx[65] + xx[78] - xx[88] * state[26];
9864 xx[83] = xx[82] + xx[85];
9865 xx[82] = xx[66] + xx[79] + xx[83] * state[26];
9866 xx[84] = xx[82] * xx[29] + xx[28] * xx[89];
9867 xx[87] = xx[88] * xx[29] + xx[83] * xx[28];
9868 xx[90] = xx[48] * xx[28] - xx[49] * xx[29];
9869 xx[91] = xx[49] + xx[51] * xx[90] * xx[29];
9870 xx[49] = (xx[51] * xx[50] * xx[29] - xx[48]) * state[26];
9871 xx[48] = xx[51] * xx[90] * xx[28] + 0.03194045366784892;
9872 xx[50] = xx[67] + xx[80];
9873 xx[78] = xx[55] + xx[89] - xx[51] * xx[84] * xx[28] - (xx[88] - xx[51] * xx[87]
9874 * xx[29] + xx[91]) * state[24];
9875 xx[79] = xx[49] + xx[82] - xx[51] * xx[84] * xx[29] + (xx[83] - xx[51] * xx[87]
9876 * xx[28] + xx[48]) * state[24];
9877 xx[80] = xx[50] - (xx[29] * xx[50] * xx[29] + xx[50] * xx[28] * xx[28]) * xx
9878 [51];
9879 pm_math_quatXform(xx + 11, xx + 78, xx + 82);
9880 xx[50] = 0.389585375426561;
9881 xx[78] = xx[1] * state[64];
9882 xx[79] = cos(xx[78]);
9883 xx[80] = 0.3895819001770367;
9884 xx[87] = sin(xx[78]);
9885 xx[78] = xx[50] * xx[79] - xx[80] * xx[87];
9886 xx[88] = 0.5901074779979936;
9887 xx[89] = 0.5901036711621467;
9888 xx[90] = xx[88] * xx[79] + xx[89] * xx[87];
9889 xx[92] = xx[89] * xx[79] - xx[88] * xx[87];
9890 xx[88] = xx[80] * xx[79] + xx[50] * xx[87];
9891 xx[93] = xx[78];
9892 xx[94] = - xx[90];
9893 xx[95] = xx[92];
9894 xx[96] = - xx[88];
9895 xx[50] = xx[5] * state[70] - xx[3] * state[69];
9896 xx[79] = xx[1] * state[66];
9897 xx[80] = sin(xx[79]);
9898 xx[87] = cos(xx[79]);
9899 xx[79] = xx[3] * state[70] + xx[5] * state[69];
9900 xx[89] = xx[50] * xx[80] - xx[87] * xx[79];
9901 xx[97] = xx[3] * state[68] + xx[5] * state[71];
9902 xx[98] = xx[3] * state[71] - xx[5] * state[68];
9903 xx[99] = xx[80] * xx[97] + xx[87] * xx[98];
9904 xx[100] = xx[80] * xx[98] - xx[87] * xx[97];
9905 xx[101] = xx[50] * xx[87] + xx[80] * xx[79];
9906 xx[102] = xx[89];
9907 xx[103] = - xx[99];
9908 xx[104] = xx[100];
9909 xx[105] = xx[101];
9910 pm_math_quatCompose(xx + 93, xx + 102, xx + 106);
9911 xx[102] = xx[100] * state[65];
9912 xx[103] = xx[99] * state[65];
9913 xx[104] = xx[50] * state[67];
9914 xx[105] = xx[79] * state[67];
9915 xx[110] = xx[3] * state[72];
9916 xx[111] = xx[3] * state[73];
9917 xx[112] = state[72] - (xx[3] * xx[110] - xx[5] * xx[111]) * xx[51];
9918 xx[113] = state[73] - xx[51] * (xx[5] * xx[110] + xx[3] * xx[111]);
9919 xx[114] = xx[51] * (xx[89] * xx[102] + xx[103] * xx[101]) + (xx[104] * xx[98]
9920 + xx[105] * xx[97]) * xx[51] + xx[112];
9921 xx[115] = xx[51] * (xx[104] * xx[97] - xx[105] * xx[98]) + xx[113] - (xx[102] *
9922 xx[101] - xx[89] * xx[103]) * xx[51];
9923 xx[116] = (xx[103] * xx[99] + xx[100] * xx[102]) * xx[51] - state[65] + state
9924 [67] - (xx[105] * xx[79] + xx[50] * xx[104]) * xx[51] + state[74];
9925 xx[99] = xx[27];
9926 xx[100] = xx[59];
9927 xx[101] = xx[61];
9928 pm_math_cross3(xx + 114, xx + 99, xx + 102);
9929 pm_math_quatXform(xx + 106, xx + 102, xx + 114);
9930 xx[27] = xx[34] * xx[90];
9931 xx[59] = xx[34] * xx[88];
9932 xx[61] = 6.924287580811761e-12;
9933 xx[89] = 1.024070757638107e-11;
9934 xx[102] = xx[61] * xx[80] - xx[89] * xx[87];
9935 xx[103] = xx[98];
9936 xx[104] = - xx[79];
9937 xx[105] = - xx[50];
9938 xx[106] = - xx[97];
9939 xx[107] = xx[112];
9940 xx[108] = xx[113];
9941 xx[109] = state[74];
9942 pm_math_cross3(xx + 107, xx + 56, xx + 110);
9943 pm_math_quatXform(xx + 103, xx + 110, xx + 107);
9944 pm_math_quatXform(xx + 103, xx + 56, xx + 110);
9945 xx[50] = xx[107] - xx[111] * state[67];
9946 xx[79] = xx[108] + xx[110] * state[67];
9947 xx[97] = xx[79] * xx[87] + xx[80] * xx[50];
9948 xx[98] = xx[61] * xx[87] + xx[89] * xx[80];
9949 xx[103] = xx[87] * xx[111] + xx[110] * xx[80];
9950 xx[104] = (xx[61] - xx[51] * xx[102] * xx[80]) * state[67] + xx[50] - xx[51] *
9951 xx[97] * xx[80] + (xx[111] + xx[51] * xx[98] * xx[87] - xx[51] * xx[103] *
9952 xx[87] - xx[61]) * state[65];
9953 xx[105] = xx[79] - xx[51] * xx[97] * xx[87] - (xx[89] + xx[51] * xx[102] * xx
9954 [87]) * state[67] - (xx[110] + xx[51] * xx[98] * xx[80] - xx[51] * xx[103] *
9955 xx[80] + 0.03194045366071555) * state[65];
9956 xx[106] = xx[109] - (xx[87] * xx[87] * xx[109] + xx[109] * xx[80] * xx[80]) *
9957 xx[51];
9958 pm_math_quatXform(xx + 93, xx + 104, xx + 107);
9959 xx[50] = (xx[34] - (xx[10] * xx[40] + xx[8] * xx[39]) * xx[51]) * state[24];
9960 xx[8] = xx[51] * (xx[39] * xx[2] + xx[40] * xx[9]) * state[24];
9961 xx[2] = xx[1] * state[45];
9962 xx[9] = sin(xx[2]);
9963 xx[10] = xx[31] * xx[9];
9964 xx[39] = cos(xx[2]);
9965 xx[2] = xx[31] * xx[39];
9966 xx[31] = xx[10] - xx[2];
9967 xx[40] = xx[25] * xx[39];
9968 xx[39] = xx[25] * xx[9];
9969 xx[9] = xx[40] + xx[39];
9970 xx[25] = - xx[9];
9971 xx[61] = xx[39] - xx[40];
9972 xx[39] = xx[10] + xx[2];
9973 xx[2] = - xx[39];
9974 xx[93] = xx[31];
9975 xx[94] = xx[25];
9976 xx[95] = xx[61];
9977 xx[96] = xx[2];
9978 pm_math_quatCompose(xx + 74, xx + 93, xx + 102);
9979 pm_math_quatCompose(xx + 20, xx + 102, xx + 110);
9980 pm_math_quatCompose(xx + 15, xx + 110, xx + 117);
9981 xx[10] = xx[119] * xx[28] - xx[29] * xx[118];
9982 xx[40] = xx[120] * xx[28] - xx[29] * xx[117];
9983 xx[79] = xx[117] * xx[28] + xx[29] * xx[120];
9984 xx[80] = xx[29] * xx[119] + xx[118] * xx[28];
9985 xx[121] = - xx[10];
9986 xx[122] = xx[40];
9987 xx[123] = xx[79];
9988 xx[124] = - xx[80];
9989 pm_math_quatCompose(xx + 11, xx + 121, xx + 125);
9990 xx[87] = xx[79] * state[24];
9991 xx[89] = xx[40] * state[24];
9992 xx[97] = xx[118] * state[26];
9993 xx[98] = xx[119] * state[26];
9994 pm_math_quatInverseXform(xx + 110, xx + 62, xx + 121);
9995 pm_math_quatInverseXform(xx + 102, xx + 41, xx + 110);
9996 xx[102] = xx[25];
9997 xx[103] = xx[61];
9998 xx[104] = xx[2];
9999 xx[2] = xx[38] * xx[61];
10000 xx[25] = xx[39] * xx[37] - xx[9] * xx[38];
10001 xx[105] = xx[37] * xx[61];
10002 xx[129] = - xx[2];
10003 xx[130] = xx[25];
10004 xx[131] = xx[105];
10005 pm_math_cross3(xx + 102, xx + 129, xx + 132);
10006 xx[129] = xx[51] * (xx[87] * xx[10] - xx[80] * xx[89]) + xx[51] * (xx[120] *
10007 xx[97] - xx[117] * xx[98]) + xx[121] + xx[110] + xx[51] * (xx[132] + xx[2] *
10008 xx[31]) - xx[37];
10009 xx[130] = (xx[117] * xx[97] + xx[120] * xx[98]) * xx[51] + xx[122] + xx[111] +
10010 xx[51] * (xx[133] - xx[31] * xx[25]) - (xx[89] * xx[10] + xx[80] * xx[87]) *
10011 xx[51];
10012 xx[131] = state[24] - (xx[89] * xx[40] + xx[79] * xx[87]) * xx[51] + state[26]
10013 - (xx[118] * xx[97] + xx[119] * xx[98]) * xx[51] + xx[123] + xx[112] + (xx
10014 [134] - xx[105] * xx[31]) * xx[51] - xx[38] + state[46];
10015 pm_math_cross3(xx + 129, xx + 44, xx + 110);
10016 pm_math_quatXform(xx + 125, xx + 110, xx + 117);
10017 xx[2] = 1.121202762681406e-11;
10018 xx[10] = xx[39] * xx[2];
10019 xx[25] = 6.145027516349377e-13;
10020 xx[40] = xx[39] * xx[25];
10021 xx[39] = xx[25] * xx[61] - xx[9] * xx[2];
10022 xx[110] = xx[10];
10023 xx[111] = xx[40];
10024 xx[112] = xx[39];
10025 pm_math_cross3(xx + 102, xx + 110, xx + 120);
10026 xx[102] = - xx[2];
10027 xx[103] = - xx[25];
10028 xx[104] = - 3.999999999522439e-3;
10029 pm_math_quatXform(xx + 93, xx + 102, xx + 110);
10030 xx[9] = 0.05221615474387575 - xx[112];
10031 xx[61] = 0.1412410329922704 - xx[110];
10032 xx[93] = (xx[51] * (xx[120] + xx[10] * xx[31]) - xx[25]) * state[46] - xx[111]
10033 * xx[38];
10034 xx[94] = (xx[2] + (xx[40] * xx[31] + xx[121]) * xx[51]) * state[46] + xx[37] *
10035 xx[9] - xx[38] * xx[61];
10036 xx[95] = xx[51] * (xx[31] * xx[39] + xx[122]) * state[46] + xx[111] * xx[37];
10037 pm_math_quatXform(xx + 74, xx + 93, xx + 96);
10038 xx[93] = xx[61];
10039 xx[94] = - xx[111];
10040 xx[95] = xx[9];
10041 pm_math_quatXform(xx + 74, xx + 93, xx + 102);
10042 xx[93] = xx[102] - xx[69];
10043 xx[94] = xx[103] + xx[36];
10044 xx[95] = xx[104] - xx[70];
10045 pm_math_cross3(xx + 41, xx + 93, xx + 102);
10046 xx[110] = xx[68] + xx[96] + xx[102];
10047 xx[111] = xx[24] + xx[97] + xx[103];
10048 xx[112] = xx[98] - xx[26] + xx[104];
10049 pm_math_quatXform(xx + 20, xx + 110, xx + 96);
10050 pm_math_quatXform(xx + 20, xx + 93, xx + 102);
10051 xx[93] = xx[102] + xx[32];
10052 xx[94] = xx[103] + xx[60];
10053 xx[95] = xx[104] + xx[81];
10054 pm_math_cross3(xx + 62, xx + 93, xx + 102);
10055 xx[110] = xx[71] + xx[96] + xx[102];
10056 xx[111] = xx[72] + xx[97] + xx[103];
10057 xx[112] = xx[73] + xx[98] + xx[104];
10058 pm_math_quatXform(xx + 15, xx + 110, xx + 96);
10059 pm_math_quatXform(xx + 15, xx + 93, xx + 102);
10060 xx[2] = xx[103] + xx[86];
10061 xx[9] = xx[65] + xx[96] - xx[2] * state[26];
10062 xx[10] = xx[102] + xx[85];
10063 xx[25] = xx[66] + xx[97] + xx[10] * state[26];
10064 xx[31] = xx[25] * xx[29] + xx[28] * xx[9];
10065 xx[39] = xx[2] * xx[29] + xx[10] * xx[28];
10066 xx[40] = xx[67] + xx[98];
10067 xx[93] = xx[55] + xx[9] - xx[51] * xx[31] * xx[28] - (xx[2] - xx[51] * xx[39] *
10068 xx[29] + xx[91]) * state[24];
10069 xx[94] = xx[49] + xx[25] - xx[51] * xx[31] * xx[29] + (xx[10] - xx[51] * xx[39]
10070 * xx[28] + xx[48]) * state[24];
10071 xx[95] = xx[40] - (xx[29] * xx[40] * xx[29] + xx[40] * xx[28] * xx[28]) * xx
10072 [51];
10073 pm_math_quatXform(xx + 11, xx + 93, xx + 96);
10074 xx[2] = xx[1] * state[53];
10075 xx[9] = cos(xx[2]);
10076 xx[10] = sin(xx[2]);
10077 xx[2] = xx[0] * xx[9] + xx[4] * xx[10];
10078 xx[25] = xx[6] * xx[10] - xx[7] * xx[9];
10079 xx[31] = xx[6] * xx[9] + xx[7] * xx[10];
10080 xx[6] = xx[0] * xx[10] - xx[4] * xx[9];
10081 xx[102] = xx[2];
10082 xx[103] = xx[25];
10083 xx[104] = xx[31];
10084 xx[105] = xx[6];
10085 xx[0] = xx[5] * state[59] - xx[3] * state[58];
10086 xx[4] = xx[1] * state[55];
10087 xx[7] = sin(xx[4]);
10088 xx[9] = cos(xx[4]);
10089 xx[4] = xx[3] * state[59] + xx[5] * state[58];
10090 xx[10] = xx[0] * xx[7] - xx[9] * xx[4];
10091 xx[39] = xx[3] * state[57] + xx[5] * state[60];
10092 xx[40] = xx[3] * state[60] - xx[5] * state[57];
10093 xx[61] = xx[7] * xx[39] + xx[9] * xx[40];
10094 xx[79] = xx[7] * xx[40] - xx[9] * xx[39];
10095 xx[80] = xx[0] * xx[9] + xx[7] * xx[4];
10096 xx[110] = xx[10];
10097 xx[111] = - xx[61];
10098 xx[112] = xx[79];
10099 xx[113] = xx[80];
10100 pm_math_quatCompose(xx + 102, xx + 110, xx + 120);
10101 xx[87] = xx[0] * state[56];
10102 xx[89] = xx[4] * state[56];
10103 xx[93] = xx[3] * state[61];
10104 xx[94] = xx[3] * state[62];
10105 xx[95] = state[61] - (xx[3] * xx[93] - xx[5] * xx[94]) * xx[51];
10106 xx[106] = xx[61] * state[54];
10107 xx[110] = xx[79] * state[54];
10108 xx[111] = state[62] - xx[51] * (xx[5] * xx[93] + xx[3] * xx[94]);
10109 xx[124] = (xx[87] * xx[40] + xx[89] * xx[39]) * xx[51] + xx[95] - xx[51] *
10110 (xx[106] * xx[80] + xx[10] * xx[110]);
10111 xx[125] = (xx[110] * xx[80] - xx[10] * xx[106]) * xx[51] + xx[51] * (xx[87] *
10112 xx[39] - xx[89] * xx[40]) + xx[111];
10113 xx[126] = state[54] - (xx[106] * xx[61] + xx[79] * xx[110]) * xx[51] + state
10114 [56] - (xx[89] * xx[4] + xx[0] * xx[87]) * xx[51] + state[63];
10115 pm_math_cross3(xx + 124, xx + 99, xx + 127);
10116 pm_math_quatXform(xx + 120, xx + 127, xx + 124);
10117 xx[10] = 0.02520954632904374;
10118 xx[61] = xx[25] * xx[10];
10119 xx[79] = xx[6] * xx[10];
10120 xx[80] = 5.443558296964576e-12;
10121 xx[87] = 9.27756931389703e-12;
10122 xx[89] = xx[87] * xx[9] + xx[80] * xx[7];
10123 xx[120] = xx[40];
10124 xx[121] = - xx[4];
10125 xx[122] = - xx[0];
10126 xx[123] = - xx[39];
10127 xx[127] = xx[95];
10128 xx[128] = xx[111];
10129 xx[129] = state[63];
10130 pm_math_cross3(xx + 127, xx + 56, xx + 93);
10131 pm_math_quatXform(xx + 120, xx + 93, xx + 110);
10132 pm_math_quatXform(xx + 120, xx + 56, xx + 93);
10133 xx[0] = xx[110] - xx[94] * state[56];
10134 xx[4] = xx[111] + xx[93] * state[56];
10135 xx[39] = xx[4] * xx[9] + xx[7] * xx[0];
10136 xx[40] = xx[80] * xx[9] - xx[87] * xx[7];
10137 xx[95] = xx[9] * xx[94] + xx[93] * xx[7];
10138 xx[120] = (xx[80] - xx[51] * xx[89] * xx[7]) * state[56] + xx[0] - xx[51] *
10139 xx[39] * xx[7] - (xx[94] + xx[51] * xx[40] * xx[9] - xx[51] * xx[95] * xx[9]
10140 - xx[80]) * state[54];
10141 xx[121] = (xx[87] - xx[51] * xx[89] * xx[9]) * state[56] + xx[4] - xx[51] *
10142 xx[39] * xx[9] + (xx[93] + xx[51] * xx[40] * xx[7] - xx[51] * xx[95] * xx[7]
10143 + 0.03194045368023388) * state[54];
10144 xx[122] = xx[112] - (xx[9] * xx[9] * xx[112] + xx[112] * xx[7] * xx[7]) * xx
10145 [51];
10146 pm_math_quatXform(xx + 102, xx + 120, xx + 93);
10147 xx[0] = 0.3535533905932758;
10148 xx[4] = xx[1] * state[47];
10149 xx[7] = cos(xx[4]);
10150 xx[9] = xx[0] * xx[7];
10151 xx[39] = sin(xx[4]);
10152 xx[4] = xx[0] * xx[39];
10153 xx[40] = xx[9] + xx[4];
10154 xx[80] = 0.6123724356957934;
10155 xx[87] = xx[80] * xx[39];
10156 xx[39] = xx[80] * xx[7];
10157 xx[7] = xx[87] - xx[39];
10158 xx[89] = xx[39] + xx[87];
10159 xx[39] = - xx[89];
10160 xx[87] = xx[4] - xx[9];
10161 xx[102] = - xx[40];
10162 xx[103] = xx[7];
10163 xx[104] = xx[39];
10164 xx[105] = xx[87];
10165 pm_math_quatCompose(xx + 74, xx + 102, xx + 110);
10166 pm_math_quatCompose(xx + 20, xx + 110, xx + 120);
10167 pm_math_quatCompose(xx + 15, xx + 120, xx + 127);
10168 xx[4] = xx[129] * xx[28] - xx[29] * xx[128];
10169 xx[9] = xx[130] * xx[28] - xx[29] * xx[127];
10170 xx[106] = xx[127] * xx[28] + xx[29] * xx[130];
10171 xx[131] = xx[29] * xx[129] + xx[128] * xx[28];
10172 xx[132] = - xx[4];
10173 xx[133] = xx[9];
10174 xx[134] = xx[106];
10175 xx[135] = - xx[131];
10176 pm_math_quatCompose(xx + 11, xx + 132, xx + 136);
10177 xx[132] = xx[106] * state[24];
10178 xx[133] = xx[9] * state[24];
10179 xx[134] = xx[128] * state[26];
10180 xx[135] = xx[129] * state[26];
10181 pm_math_quatInverseXform(xx + 120, xx + 62, xx + 140);
10182 pm_math_quatInverseXform(xx + 110, xx + 41, xx + 120);
10183 xx[110] = xx[7];
10184 xx[111] = xx[39];
10185 xx[112] = xx[87];
10186 xx[39] = xx[89] * xx[38];
10187 xx[113] = xx[38] * xx[7] - xx[37] * xx[87];
10188 xx[123] = xx[89] * xx[37];
10189 xx[143] = xx[39];
10190 xx[144] = xx[113];
10191 xx[145] = - xx[123];
10192 pm_math_cross3(xx + 110, xx + 143, xx + 146);
10193 xx[143] = xx[51] * (xx[132] * xx[4] - xx[131] * xx[133]) + xx[51] * (xx[130] *
10194 xx[134] - xx[127] * xx[135]) + xx[140] + xx[120] + xx[51] * (xx[146] + xx[40]
10195 * xx[39]) - xx[37];
10196 xx[144] = (xx[127] * xx[134] + xx[130] * xx[135]) * xx[51] + xx[141] + xx[121]
10197 + xx[51] * (xx[147] + xx[40] * xx[113]) - (xx[133] * xx[4] + xx[131] * xx
10198 [132]) * xx[51];
10199 xx[145] = state[24] - (xx[133] * xx[9] + xx[106] * xx[132]) * xx[51] + state
10200 [26] - (xx[128] * xx[134] + xx[129] * xx[135]) * xx[51] + xx[142] + xx[122]
10201 + (xx[148] - xx[40] * xx[123]) * xx[51] - xx[38] - state[48];
10202 pm_math_cross3(xx + 143, xx + 44, xx + 120);
10203 pm_math_quatXform(xx + 136, xx + 120, xx + 127);
10204 xx[4] = 3.80025733104361e-12;
10205 xx[9] = 3.881762117297072e-12;
10206 xx[39] = xx[9] * xx[87];
10207 xx[106] = xx[4] * xx[87];
10208 xx[87] = xx[9] * xx[7] + xx[89] * xx[4];
10209 xx[120] = - xx[39];
10210 xx[121] = xx[106];
10211 xx[122] = xx[87];
10212 pm_math_cross3(xx + 110, xx + 120, xx + 130);
10213 xx[110] = xx[9];
10214 xx[111] = - xx[4];
10215 xx[112] = 3.999999998874377e-3;
10216 pm_math_quatXform(xx + 102, xx + 110, xx + 120);
10217 xx[7] = 0.1412410329922711 + xx[120];
10218 xx[89] = 0.05221615474387407 - xx[122];
10219 xx[102] = (xx[4] + xx[51] * (xx[130] + xx[40] * xx[39])) * state[48] - xx[121]
10220 * xx[38];
10221 xx[103] = (xx[9] + (xx[131] - xx[40] * xx[106]) * xx[51]) * state[48] + xx[38]
10222 * xx[7] + xx[37] * xx[89];
10223 xx[104] = xx[51] * (xx[132] - xx[40] * xx[87]) * state[48] + xx[121] * xx[37];
10224 pm_math_quatXform(xx + 74, xx + 102, xx + 110);
10225 xx[102] = - xx[7];
10226 xx[103] = - xx[121];
10227 xx[104] = xx[89];
10228 pm_math_quatXform(xx + 74, xx + 102, xx + 120);
10229 xx[102] = xx[120] - xx[69];
10230 xx[103] = xx[121] + xx[36];
10231 xx[104] = xx[122] - xx[70];
10232 pm_math_cross3(xx + 41, xx + 102, xx + 120);
10233 xx[130] = xx[68] + xx[110] + xx[120];
10234 xx[131] = xx[24] + xx[111] + xx[121];
10235 xx[132] = xx[112] - xx[26] + xx[122];
10236 pm_math_quatXform(xx + 20, xx + 130, xx + 110);
10237 pm_math_quatXform(xx + 20, xx + 102, xx + 120);
10238 xx[102] = xx[120] + xx[32];
10239 xx[103] = xx[121] + xx[60];
10240 xx[104] = xx[122] + xx[81];
10241 pm_math_cross3(xx + 62, xx + 102, xx + 120);
10242 xx[130] = xx[71] + xx[110] + xx[120];
10243 xx[131] = xx[72] + xx[111] + xx[121];
10244 xx[132] = xx[73] + xx[112] + xx[122];
10245 pm_math_quatXform(xx + 15, xx + 130, xx + 110);
10246 pm_math_quatXform(xx + 15, xx + 102, xx + 120);
10247 xx[4] = xx[121] + xx[86];
10248 xx[7] = xx[65] + xx[110] - xx[4] * state[26];
10249 xx[9] = xx[120] + xx[85];
10250 xx[39] = xx[66] + xx[111] + xx[9] * state[26];
10251 xx[40] = xx[39] * xx[29] + xx[28] * xx[7];
10252 xx[87] = xx[4] * xx[29] + xx[9] * xx[28];
10253 xx[89] = xx[67] + xx[112];
10254 xx[102] = xx[55] + xx[7] - xx[51] * xx[40] * xx[28] - (xx[4] - xx[51] * xx[87]
10255 * xx[29] + xx[91]) * state[24];
10256 xx[103] = xx[49] + xx[39] - xx[51] * xx[40] * xx[29] + (xx[9] - xx[51] * xx[87]
10257 * xx[28] + xx[48]) * state[24];
10258 xx[104] = xx[89] - (xx[29] * xx[89] * xx[29] + xx[89] * xx[28] * xx[28]) * xx
10259 [51];
10260 pm_math_quatXform(xx + 11, xx + 102, xx + 110);
10261 xx[4] = 0.3162553791961485;
10262 xx[7] = xx[1] * state[75];
10263 xx[9] = cos(xx[7]);
10264 xx[39] = 0.3162538200043588;
10265 xx[40] = sin(xx[7]);
10266 xx[7] = xx[4] * xx[9] - xx[39] * xx[40];
10267 xx[87] = 0.6324445710612965;
10268 xx[89] = 0.6324396579890005;
10269 xx[102] = xx[87] * xx[9] + xx[89] * xx[40];
10270 xx[103] = xx[87] * xx[40] - xx[89] * xx[9];
10271 xx[87] = xx[39] * xx[9] + xx[4] * xx[40];
10272 xx[120] = xx[7];
10273 xx[121] = xx[102];
10274 xx[122] = xx[103];
10275 xx[123] = - xx[87];
10276 xx[4] = xx[5] * state[81] - xx[3] * state[80];
10277 xx[9] = xx[1] * state[77];
10278 xx[39] = sin(xx[9]);
10279 xx[40] = cos(xx[9]);
10280 xx[9] = xx[3] * state[81] + xx[5] * state[80];
10281 xx[89] = xx[4] * xx[39] - xx[40] * xx[9];
10282 xx[104] = xx[3] * state[79] + xx[5] * state[82];
10283 xx[105] = xx[3] * state[82] - xx[5] * state[79];
10284 xx[106] = xx[39] * xx[104] + xx[40] * xx[105];
10285 xx[113] = xx[39] * xx[105] - xx[40] * xx[104];
10286 xx[130] = xx[4] * xx[40] + xx[39] * xx[9];
10287 xx[131] = xx[89];
10288 xx[132] = - xx[106];
10289 xx[133] = xx[113];
10290 xx[134] = xx[130];
10291 pm_math_quatCompose(xx + 120, xx + 131, xx + 135);
10292 xx[131] = xx[113] * state[76];
10293 xx[132] = xx[106] * state[76];
10294 xx[133] = xx[4] * state[78];
10295 xx[134] = xx[9] * state[78];
10296 xx[139] = xx[3] * state[83];
10297 xx[140] = xx[3] * state[84];
10298 xx[141] = state[83] - (xx[3] * xx[139] - xx[5] * xx[140]) * xx[51];
10299 xx[142] = state[84] - xx[51] * (xx[5] * xx[139] + xx[3] * xx[140]);
10300 xx[143] = xx[51] * (xx[89] * xx[131] + xx[132] * xx[130]) + (xx[133] * xx[105]
10301 + xx[134] * xx[104]) * xx[51] + xx[141];
10302 xx[144] = xx[51] * (xx[133] * xx[104] - xx[134] * xx[105]) + xx[142] - (xx[131]
10303 * xx[130] - xx[89] * xx[132]) * xx[51];
10304 xx[145] = (xx[132] * xx[106] + xx[113] * xx[131]) * xx[51] - state[76] +
10305 state[78] - (xx[134] * xx[9] + xx[4] * xx[133]) * xx[51] + state[85];
10306 pm_math_cross3(xx + 143, xx + 99, xx + 130);
10307 pm_math_quatXform(xx + 135, xx + 130, xx + 143);
10308 xx[89] = 5.157931604049537e-12;
10309 xx[106] = 9.862118968695376e-13;
10310 xx[113] = xx[89] * xx[40] + xx[106] * xx[39];
10311 xx[130] = xx[105];
10312 xx[131] = - xx[9];
10313 xx[132] = - xx[4];
10314 xx[133] = - xx[104];
10315 xx[134] = xx[141];
10316 xx[135] = xx[142];
10317 xx[136] = state[85];
10318 pm_math_cross3(xx + 134, xx + 56, xx + 137);
10319 pm_math_quatXform(xx + 130, xx + 137, xx + 134);
10320 pm_math_quatXform(xx + 130, xx + 56, xx + 137);
10321 xx[4] = xx[134] - xx[138] * state[78];
10322 xx[9] = xx[135] + xx[137] * state[78];
10323 xx[104] = xx[9] * xx[40] + xx[39] * xx[4];
10324 xx[105] = xx[89] * xx[39] - xx[106] * xx[40];
10325 xx[130] = xx[40] * xx[138] + xx[137] * xx[39];
10326 xx[131] = (xx[51] * xx[113] * xx[39] - xx[106]) * state[78] + xx[4] - xx[51] *
10327 xx[104] * xx[39] + (xx[138] + xx[51] * xx[105] * xx[40] - xx[51] * xx[130] *
10328 xx[40] + xx[106]) * state[76];
10329 xx[132] = (xx[51] * xx[113] * xx[40] - xx[89]) * state[78] + xx[9] - xx[51] *
10330 xx[104] * xx[40] - (xx[137] + xx[51] * xx[105] * xx[39] - xx[51] * xx[130] *
10331 xx[39] + 0.03194045366579833) * state[76];
10332 xx[133] = xx[136] - (xx[40] * xx[40] * xx[136] + xx[136] * xx[39] * xx[39]) *
10333 xx[51];
10334 pm_math_quatXform(xx + 120, xx + 131, xx + 104);
10335 xx[4] = xx[34] * xx[102];
10336 xx[9] = xx[34] * xx[87];
10337 xx[39] = xx[1] * state[49];
10338 xx[40] = cos(xx[39]);
10339 xx[89] = xx[0] * xx[40];
10340 xx[113] = sin(xx[39]);
10341 xx[39] = xx[0] * xx[113];
10342 xx[0] = xx[89] + xx[39];
10343 xx[120] = xx[80] * xx[40];
10344 xx[40] = xx[80] * xx[113];
10345 xx[80] = xx[120] - xx[40];
10346 xx[113] = xx[120] + xx[40];
10347 xx[40] = xx[89] - xx[39];
10348 xx[120] = xx[0];
10349 xx[121] = xx[80];
10350 xx[122] = xx[113];
10351 xx[123] = xx[40];
10352 pm_math_quatCompose(xx + 74, xx + 120, xx + 130);
10353 pm_math_quatCompose(xx + 20, xx + 130, xx + 134);
10354 pm_math_quatCompose(xx + 15, xx + 134, xx + 138);
10355 xx[39] = xx[140] * xx[28] - xx[29] * xx[139];
10356 xx[89] = xx[141] * xx[28] - xx[29] * xx[138];
10357 xx[142] = xx[138] * xx[28] + xx[29] * xx[141];
10358 xx[146] = xx[29] * xx[140] + xx[139] * xx[28];
10359 xx[147] = - xx[39];
10360 xx[148] = xx[89];
10361 xx[149] = xx[142];
10362 xx[150] = - xx[146];
10363 pm_math_quatCompose(xx + 11, xx + 147, xx + 151);
10364 xx[147] = xx[142] * state[24];
10365 xx[148] = xx[89] * state[24];
10366 xx[149] = xx[139] * state[26];
10367 xx[150] = xx[140] * state[26];
10368 pm_math_quatInverseXform(xx + 134, xx + 62, xx + 155);
10369 pm_math_quatInverseXform(xx + 130, xx + 41, xx + 134);
10370 xx[130] = xx[80];
10371 xx[131] = xx[113];
10372 xx[132] = xx[40];
10373 xx[133] = xx[113] * xx[38];
10374 xx[137] = xx[38] * xx[80] - xx[37] * xx[40];
10375 xx[158] = xx[113] * xx[37];
10376 xx[159] = - xx[133];
10377 xx[160] = xx[137];
10378 xx[161] = xx[158];
10379 pm_math_cross3(xx + 130, xx + 159, xx + 162);
10380 xx[159] = xx[51] * (xx[147] * xx[39] - xx[146] * xx[148]) + xx[51] * (xx[141] *
10381 xx[149] - xx[138] * xx[150]) + xx[155] + xx[134] + xx[51] * (xx[162] + xx[0]
10382 * xx[133]) - xx[37];
10383 xx[160] = (xx[138] * xx[149] + xx[141] * xx[150]) * xx[51] + xx[156] + xx[135]
10384 + xx[51] * (xx[163] - xx[0] * xx[137]) - (xx[148] * xx[39] + xx[146] * xx
10385 [147]) * xx[51];
10386 xx[161] = state[24] - (xx[148] * xx[89] + xx[142] * xx[147]) * xx[51] + state
10387 [26] - (xx[139] * xx[149] + xx[140] * xx[150]) * xx[51] + xx[157] + xx[136]
10388 + (xx[164] - xx[0] * xx[158]) * xx[51] - xx[38] - state[50];
10389 pm_math_cross3(xx + 159, xx + 44, xx + 133);
10390 pm_math_quatXform(xx + 151, xx + 133, xx + 136);
10391 xx[39] = 6.30935626036444e-12;
10392 xx[89] = 5.998698970888227e-12;
10393 xx[133] = xx[89] * xx[40];
10394 xx[134] = xx[39] * xx[40];
10395 xx[40] = xx[89] * xx[80] + xx[113] * xx[39];
10396 xx[139] = xx[133];
10397 xx[140] = xx[134];
10398 xx[141] = - xx[40];
10399 pm_math_cross3(xx + 130, xx + 139, xx + 146);
10400 xx[130] = - xx[89];
10401 xx[131] = - xx[39];
10402 xx[132] = 4.000000001735564e-3;
10403 pm_math_quatXform(xx + 120, xx + 130, xx + 139);
10404 xx[80] = 0.1158410329922713 + xx[139];
10405 xx[113] = 0.09621024525612379 - xx[141];
10406 xx[120] = (xx[39] + xx[51] * (xx[146] + xx[0] * xx[133])) * state[50] - xx[140]
10407 * xx[38];
10408 xx[121] = ((xx[0] * xx[134] + xx[147]) * xx[51] - xx[89]) * state[50] + xx[38]
10409 * xx[80] + xx[37] * xx[113];
10410 xx[122] = xx[51] * (xx[148] - xx[0] * xx[40]) * state[50] + xx[140] * xx[37];
10411 pm_math_quatXform(xx + 74, xx + 120, xx + 130);
10412 xx[120] = - xx[80];
10413 xx[121] = - xx[140];
10414 xx[122] = xx[113];
10415 pm_math_quatXform(xx + 74, xx + 120, xx + 133);
10416 xx[120] = xx[133] - xx[69];
10417 xx[121] = xx[134] + xx[36];
10418 xx[122] = xx[135] - xx[70];
10419 pm_math_cross3(xx + 41, xx + 120, xx + 133);
10420 xx[139] = xx[68] + xx[130] + xx[133];
10421 xx[140] = xx[24] + xx[131] + xx[134];
10422 xx[141] = xx[132] - xx[26] + xx[135];
10423 pm_math_quatXform(xx + 20, xx + 139, xx + 130);
10424 pm_math_quatXform(xx + 20, xx + 120, xx + 133);
10425 xx[120] = xx[133] + xx[32];
10426 xx[121] = xx[134] + xx[60];
10427 xx[122] = xx[135] + xx[81];
10428 pm_math_cross3(xx + 62, xx + 120, xx + 133);
10429 xx[139] = xx[71] + xx[130] + xx[133];
10430 xx[140] = xx[72] + xx[131] + xx[134];
10431 xx[141] = xx[73] + xx[132] + xx[135];
10432 pm_math_quatXform(xx + 15, xx + 139, xx + 130);
10433 pm_math_quatXform(xx + 15, xx + 120, xx + 133);
10434 xx[0] = xx[134] + xx[86];
10435 xx[39] = xx[65] + xx[130] - xx[0] * state[26];
10436 xx[40] = xx[133] + xx[85];
10437 xx[80] = xx[66] + xx[131] + xx[40] * state[26];
10438 xx[89] = xx[80] * xx[29] + xx[28] * xx[39];
10439 xx[113] = xx[0] * xx[29] + xx[40] * xx[28];
10440 xx[120] = xx[67] + xx[132];
10441 xx[121] = xx[55] + xx[39] - xx[51] * xx[89] * xx[28] - (xx[0] - xx[51] * xx
10442 [113] * xx[29] + xx[91]) * state[24];
10443 xx[122] = xx[49] + xx[80] - xx[51] * xx[89] * xx[29] + (xx[40] - xx[51] * xx
10444 [113] * xx[28] + xx[48]) * state[24];
10445 xx[123] = xx[120] - (xx[29] * xx[120] * xx[29] + xx[120] * xx[28] * xx[28]) *
10446 xx[51];
10447 pm_math_quatXform(xx + 11, xx + 121, xx + 130);
10448 xx[0] = 0.3162538200043575;
10449 xx[39] = xx[1] * state[86];
10450 xx[40] = sin(xx[39]);
10451 xx[80] = 0.3162553791961478;
10452 xx[89] = cos(xx[39]);
10453 xx[39] = xx[0] * xx[40] - xx[80] * xx[89];
10454 xx[113] = 0.6324445710612973;
10455 xx[120] = 0.6324396579890008;
10456 xx[121] = xx[113] * xx[89] + xx[120] * xx[40];
10457 xx[122] = xx[120] * xx[89] - xx[113] * xx[40];
10458 xx[113] = xx[0] * xx[89] + xx[80] * xx[40];
10459 xx[139] = xx[39];
10460 xx[140] = - xx[121];
10461 xx[141] = xx[122];
10462 xx[142] = xx[113];
10463 xx[0] = xx[5] * state[92] - xx[3] * state[91];
10464 xx[40] = xx[1] * state[88];
10465 xx[80] = sin(xx[40]);
10466 xx[89] = cos(xx[40]);
10467 xx[40] = xx[3] * state[92] + xx[5] * state[91];
10468 xx[120] = xx[0] * xx[80] - xx[89] * xx[40];
10469 xx[123] = xx[3] * state[90] + xx[5] * state[93];
10470 xx[133] = xx[3] * state[93] - xx[5] * state[90];
10471 xx[134] = xx[80] * xx[123] + xx[89] * xx[133];
10472 xx[135] = xx[80] * xx[133] - xx[89] * xx[123];
10473 xx[146] = xx[0] * xx[89] + xx[80] * xx[40];
10474 xx[147] = xx[120];
10475 xx[148] = - xx[134];
10476 xx[149] = xx[135];
10477 xx[150] = xx[146];
10478 pm_math_quatCompose(xx + 139, xx + 147, xx + 151);
10479 xx[147] = xx[135] * state[87];
10480 xx[148] = xx[134] * state[87];
10481 xx[149] = xx[0] * state[89];
10482 xx[150] = xx[40] * state[89];
10483 xx[155] = xx[3] * state[94];
10484 xx[156] = xx[3] * state[95];
10485 xx[157] = state[94] - (xx[3] * xx[155] - xx[5] * xx[156]) * xx[51];
10486 xx[158] = state[95] - xx[51] * (xx[5] * xx[155] + xx[3] * xx[156]);
10487 xx[159] = xx[51] * (xx[120] * xx[147] + xx[148] * xx[146]) + (xx[149] * xx[133]
10488 + xx[150] * xx[123]) * xx[51] + xx[157];
10489 xx[160] = xx[51] * (xx[149] * xx[123] - xx[150] * xx[133]) + xx[158] - (xx[147]
10490 * xx[146] - xx[120] * xx[148]) * xx[51];
10491 xx[161] = (xx[148] * xx[134] + xx[135] * xx[147]) * xx[51] - state[87] +
10492 state[89] - (xx[150] * xx[40] + xx[0] * xx[149]) * xx[51] + state[96];
10493 pm_math_cross3(xx + 159, xx + 99, xx + 146);
10494 pm_math_quatXform(xx + 151, xx + 146, xx + 159);
10495 xx[120] = xx[34] * xx[121];
10496 xx[134] = xx[34] * xx[113];
10497 xx[135] = 1.600627075326599e-13;
10498 xx[146] = 8.497959654019115e-12;
10499 xx[147] = xx[135] * xx[89] + xx[146] * xx[80];
10500 xx[148] = xx[133];
10501 xx[149] = - xx[40];
10502 xx[150] = - xx[0];
10503 xx[151] = - xx[123];
10504 xx[152] = xx[157];
10505 xx[153] = xx[158];
10506 xx[154] = state[96];
10507 pm_math_cross3(xx + 152, xx + 56, xx + 155);
10508 pm_math_quatXform(xx + 148, xx + 155, xx + 152);
10509 pm_math_quatXform(xx + 148, xx + 56, xx + 155);
10510 xx[0] = xx[152] - xx[156] * state[89];
10511 xx[40] = xx[153] + xx[155] * state[89];
10512 xx[123] = xx[40] * xx[89] + xx[80] * xx[0];
10513 xx[133] = xx[135] * xx[80] - xx[146] * xx[89];
10514 xx[148] = xx[89] * xx[156] + xx[155] * xx[80];
10515 xx[149] = (xx[51] * xx[147] * xx[80] - xx[146]) * state[89] + xx[0] - xx[51] *
10516 xx[123] * xx[80] + (xx[156] + xx[51] * xx[133] * xx[89] - xx[51] * xx[148] *
10517 xx[89] + xx[146]) * state[87];
10518 xx[150] = (xx[51] * xx[147] * xx[89] - xx[135]) * state[89] + xx[40] - xx[51] *
10519 xx[123] * xx[89] - (xx[155] + xx[51] * xx[133] * xx[80] - xx[51] * xx[148] *
10520 xx[80] + 0.03194045367079622) * state[87];
10521 xx[151] = xx[154] - (xx[89] * xx[89] * xx[154] + xx[154] * xx[80] * xx[80]) *
10522 xx[51];
10523 pm_math_quatXform(xx + 139, xx + 149, xx + 146);
10524 xx[0] = xx[1] * state[51];
10525 xx[40] = cos(xx[0]);
10526 xx[80] = sin(xx[0]);
10527 xx[139] = xx[40] * xx[35] + xx[80] * xx[19];
10528 xx[140] = xx[30] * xx[40] - xx[80] * xx[33];
10529 xx[141] = xx[40] * xx[33] + xx[30] * xx[80];
10530 xx[142] = xx[40] * xx[19] - xx[80] * xx[35];
10531 pm_math_quatCompose(xx + 20, xx + 139, xx + 149);
10532 pm_math_quatCompose(xx + 15, xx + 149, xx + 153);
10533 xx[0] = xx[155] * xx[28] - xx[29] * xx[154];
10534 xx[19] = xx[156] * xx[28] - xx[29] * xx[153];
10535 xx[30] = xx[153] * xx[28] + xx[29] * xx[156];
10536 xx[33] = xx[29] * xx[155] + xx[154] * xx[28];
10537 xx[162] = - xx[0];
10538 xx[163] = xx[19];
10539 xx[164] = xx[30];
10540 xx[165] = - xx[33];
10541 pm_math_quatCompose(xx + 11, xx + 162, xx + 166);
10542 xx[35] = xx[30] * state[24];
10543 xx[89] = xx[19] * state[24];
10544 xx[123] = xx[154] * state[26];
10545 xx[133] = xx[155] * state[26];
10546 pm_math_quatInverseXform(xx + 149, xx + 62, xx + 162);
10547 pm_math_quatInverseXform(xx + 139, xx + 41, xx + 149);
10548 xx[135] = xx[37] * xx[80];
10549 xx[139] = xx[51] * (xx[35] * xx[0] - xx[33] * xx[89]) + xx[51] * (xx[156] *
10550 xx[123] - xx[153] * xx[133]) + xx[162] + xx[149] + xx[51] * xx[135] * xx[80]
10551 - xx[37];
10552 xx[140] = (xx[153] * xx[123] + xx[156] * xx[133]) * xx[51] + xx[163] + xx[150]
10553 - xx[51] * xx[40] * xx[135] - (xx[89] * xx[0] + xx[33] * xx[35]) * xx[51];
10554 xx[141] = state[24] - (xx[89] * xx[19] + xx[30] * xx[35]) * xx[51] + state[26]
10555 - (xx[154] * xx[123] + xx[155] * xx[133]) * xx[51] + xx[164] + xx[151] -
10556 (xx[38] + state[52]);
10557 pm_math_cross3(xx + 139, xx + 44, xx + 149);
10558 pm_math_quatXform(xx + 166, xx + 149, xx + 44);
10559 xx[0] = 5.61723311615081e-12;
10560 xx[19] = 6.817225262079063e-12;
10561 xx[30] = xx[19] * xx[80];
10562 xx[33] = xx[40] * xx[30];
10563 xx[35] = xx[0] * xx[80];
10564 xx[89] = xx[35] * xx[80];
10565 xx[123] = (xx[33] + xx[89]) * xx[51] - xx[0];
10566 xx[133] = xx[40] * xx[35];
10567 xx[35] = xx[30] * xx[80];
10568 xx[30] = 0.02540000000000185 - (xx[51] * (xx[35] - xx[133]) - xx[19]);
10569 xx[40] = 0.152426400001803;
10570 xx[139] = (xx[0] - xx[51] * (xx[33] + xx[89])) * state[52] - xx[38] * xx[123];
10571 xx[140] = - ((xx[19] + (xx[133] - xx[35]) * xx[51]) * state[52] + xx[38] * xx
10572 [30] + xx[40] * xx[37]);
10573 xx[141] = xx[37] * xx[123];
10574 pm_math_quatXform(xx + 74, xx + 139, xx + 149);
10575 xx[139] = xx[30];
10576 xx[140] = - xx[123];
10577 xx[141] = - xx[40];
10578 pm_math_quatXform(xx + 74, xx + 139, xx + 152);
10579 xx[74] = xx[152] - xx[69];
10580 xx[75] = xx[153] + xx[36];
10581 xx[76] = xx[154] - xx[70];
10582 pm_math_cross3(xx + 41, xx + 74, xx + 35);
10583 xx[40] = xx[68] + xx[149] + xx[35];
10584 xx[41] = xx[24] + xx[150] + xx[36];
10585 xx[42] = xx[151] - xx[26] + xx[37];
10586 pm_math_quatXform(xx + 20, xx + 40, xx + 35);
10587 pm_math_quatXform(xx + 20, xx + 74, xx + 40);
10588 xx[19] = xx[40] + xx[32];
10589 xx[20] = xx[41] + xx[60];
10590 xx[21] = xx[42] + xx[81];
10591 pm_math_cross3(xx + 62, xx + 19, xx + 22);
10592 xx[40] = xx[71] + xx[35] + xx[22];
10593 xx[41] = xx[72] + xx[36] + xx[23];
10594 xx[42] = xx[73] + xx[37] + xx[24];
10595 pm_math_quatXform(xx + 15, xx + 40, xx + 22);
10596 pm_math_quatXform(xx + 15, xx + 19, xx + 35);
10597 xx[0] = xx[36] + xx[86];
10598 xx[15] = xx[65] + xx[22] - xx[0] * state[26];
10599 xx[16] = xx[35] + xx[85];
10600 xx[17] = xx[66] + xx[23] + xx[16] * state[26];
10601 xx[18] = xx[17] * xx[29] + xx[28] * xx[15];
10602 xx[19] = xx[0] * xx[29] + xx[16] * xx[28];
10603 xx[20] = xx[67] + xx[24];
10604 xx[21] = xx[55] + xx[15] - xx[51] * xx[18] * xx[28] - (xx[0] - xx[51] * xx[19]
10605 * xx[29] + xx[91]) * state[24];
10606 xx[22] = xx[49] + xx[17] - xx[51] * xx[18] * xx[29] + (xx[16] - xx[51] * xx[19]
10607 * xx[28] + xx[48]) * state[24];
10608 xx[23] = xx[20] - (xx[29] * xx[20] * xx[29] + xx[20] * xx[28] * xx[28]) * xx
10609 [51];
10610 pm_math_quatXform(xx + 11, xx + 21, xx + 15);
10611 xx[0] = 0.3895853754265615;
10612 xx[11] = xx[1] * state[12];
10613 xx[12] = cos(xx[11]);
10614 xx[13] = 0.389581900177037;
10615 xx[14] = sin(xx[11]);
10616 xx[11] = xx[0] * xx[12] - xx[13] * xx[14];
10617 xx[18] = 0.5901074779979933;
10618 xx[19] = 0.5901036711621462;
10619 xx[20] = xx[18] * xx[12] + xx[19] * xx[14];
10620 xx[21] = xx[19] * xx[12] - xx[18] * xx[14];
10621 xx[18] = xx[13] * xx[12] + xx[0] * xx[14];
10622 xx[35] = xx[11];
10623 xx[36] = - xx[20];
10624 xx[37] = xx[21];
10625 xx[38] = - xx[18];
10626 xx[0] = xx[5] * state[18] - xx[3] * state[17];
10627 xx[12] = xx[1] * state[14];
10628 xx[1] = sin(xx[12]);
10629 xx[13] = cos(xx[12]);
10630 xx[12] = xx[3] * state[18] + xx[5] * state[17];
10631 xx[14] = xx[0] * xx[1] - xx[13] * xx[12];
10632 xx[19] = xx[3] * state[16] + xx[5] * state[19];
10633 xx[22] = xx[3] * state[19] - xx[5] * state[16];
10634 xx[23] = xx[1] * xx[19] + xx[13] * xx[22];
10635 xx[24] = xx[1] * xx[22] - xx[13] * xx[19];
10636 xx[26] = xx[0] * xx[13] + xx[1] * xx[12];
10637 xx[40] = xx[14];
10638 xx[41] = - xx[23];
10639 xx[42] = xx[24];
10640 xx[43] = xx[26];
10641 pm_math_quatCompose(xx + 35, xx + 40, xx + 62);
10642 xx[28] = xx[24] * state[13];
10643 xx[29] = xx[23] * state[13];
10644 xx[30] = xx[0] * state[15];
10645 xx[32] = xx[12] * state[15];
10646 xx[33] = xx[3] * state[20];
10647 xx[40] = xx[3] * state[21];
10648 xx[41] = state[20] - (xx[3] * xx[33] - xx[5] * xx[40]) * xx[51];
10649 xx[42] = state[21] - xx[51] * (xx[5] * xx[33] + xx[3] * xx[40]);
10650 xx[66] = xx[51] * (xx[14] * xx[28] + xx[29] * xx[26]) + (xx[30] * xx[22] + xx
10651 [32] * xx[19]) * xx[51] + xx[41];
10652 xx[67] = xx[51] * (xx[30] * xx[19] - xx[32] * xx[22]) + xx[42] - (xx[28] * xx
10653 [26] - xx[14] * xx[29]) * xx[51];
10654 xx[68] = (xx[29] * xx[23] + xx[24] * xx[28]) * xx[51] - state[13] + state[15]
10655 - (xx[32] * xx[12] + xx[0] * xx[30]) * xx[51] + state[22];
10656 pm_math_cross3(xx + 66, xx + 99, xx + 28);
10657 pm_math_quatXform(xx + 62, xx + 28, xx + 66);
10658 xx[3] = xx[34] * xx[20];
10659 xx[5] = xx[34] * xx[18];
10660 xx[62] = xx[22];
10661 xx[63] = - xx[12];
10662 xx[64] = - xx[0];
10663 xx[65] = - xx[19];
10664 xx[22] = xx[41];
10665 xx[23] = xx[42];
10666 xx[24] = state[22];
10667 pm_math_cross3(xx + 22, xx + 56, xx + 28);
10668 pm_math_quatXform(xx + 62, xx + 28, xx + 22);
10669 pm_math_quatXform(xx + 62, xx + 56, xx + 28);
10670 xx[0] = xx[22] - xx[29] * state[15];
10671 xx[12] = xx[23] + xx[28] * state[15];
10672 xx[14] = xx[12] * xx[13] + xx[1] * xx[0];
10673 xx[19] = 5.376764528053357e-12;
10674 xx[26] = 7.748428954013064e-12;
10675 xx[30] = xx[26] * xx[13] - xx[19] * xx[1];
10676 xx[32] = xx[19] * xx[13] + xx[26] * xx[1];
10677 xx[33] = xx[13] * xx[29] + xx[28] * xx[1];
10678 xx[40] = xx[0] - xx[51] * xx[14] * xx[1] - (xx[19] + xx[51] * xx[30] * xx[1]) *
10679 state[15] + (xx[29] - xx[51] * xx[32] * xx[13] - xx[51] * xx[33] * xx[13] +
10680 xx[19]) * state[13];
10681 xx[41] = (xx[26] - xx[51] * xx[30] * xx[13]) * state[15] + xx[12] - xx[51] *
10682 xx[14] * xx[13] - (xx[28] - xx[51] * xx[32] * xx[1] - xx[51] * xx[33] * xx[1]
10683 + 0.03194045367870467) * state[13];
10684 xx[42] = xx[24] - (xx[13] * xx[13] * xx[24] + xx[24] * xx[1] * xx[1]) * xx[51];
10685 pm_math_quatXform(xx + 35, xx + 40, xx + 12);
10686 xx[162] = fabs(xx[52] + xx[47] + xx[82] - (xx[114] + xx[51] * (xx[92] * xx[27]
10687 - xx[78] * xx[59]) * state[65] + xx[107]));
10688 xx[163] = fabs(xx[53] + xx[50] + xx[83] - (xx[115] + ((xx[59] * xx[88] + xx[27]
10689 * xx[90]) * xx[51] - xx[34]) * state[65] + xx[108]));
10690 xx[164] = fabs(xx[54] + xx[8] + xx[84] - (xx[116] + xx[51] * (xx[78] * xx[27]
10691 + xx[92] * xx[59]) * state[65] + xx[109]));
10692 xx[165] = fabs(xx[117] + xx[47] + xx[96] - (xx[124] + xx[51] * (xx[61] * xx[31]
10693 - xx[79] * xx[2]) * state[54] + xx[93]));
10694 xx[166] = fabs(xx[118] + xx[50] + xx[97] - (xx[125] + (xx[10] - (xx[6] * xx[79]
10695 + xx[25] * xx[61]) * xx[51]) * state[54] + xx[94]));
10696 xx[167] = fabs(xx[119] + xx[8] + xx[98] - (xx[126] + xx[51] * (xx[61] * xx[2]
10697 + xx[79] * xx[31]) * state[54] + xx[95]));
10698 xx[168] = fabs(xx[127] + xx[47] + xx[110] - (xx[143] + xx[104] - xx[51] * (xx
10699 [103] * xx[4] + xx[7] * xx[9]) * state[76]));
10700 xx[169] = fabs(xx[128] + xx[50] + xx[111] - (xx[144] + ((xx[9] * xx[87] + xx[4]
10701 * xx[102]) * xx[51] - xx[34]) * state[76] + xx[105]));
10702 xx[170] = fabs(xx[129] + xx[8] + xx[112] - (xx[145] + xx[51] * (xx[103] * xx[9]
10703 - xx[7] * xx[4]) * state[76] + xx[106]));
10704 xx[171] = fabs(xx[136] + xx[47] + xx[130] - (xx[159] + xx[51] * (xx[122] * xx
10705 [120] + xx[39] * xx[134]) * state[87] + xx[146]));
10706 xx[172] = fabs(xx[137] + xx[50] + xx[131] - (xx[160] + ((xx[134] * xx[113] +
10707 xx[120] * xx[121]) * xx[51] - xx[34]) * state[87] + xx[147]));
10708 xx[173] = fabs(xx[138] + xx[8] + xx[132] - (xx[161] + xx[51] * (xx[39] * xx
10709 [120] - xx[122] * xx[134]) * state[87] + xx[148]));
10710 xx[174] = fabs(xx[44] + xx[47] + xx[15] - (xx[66] + xx[51] * (xx[21] * xx[3] -
10711 xx[11] * xx[5]) * state[13] + xx[12]));
10712 xx[175] = fabs(xx[45] + xx[50] + xx[16] - (xx[67] + ((xx[5] * xx[18] + xx[3] *
10713 xx[20]) * xx[51] - xx[34]) * state[13] + xx[13]));
10714 xx[176] = fabs(xx[46] + xx[8] + xx[17] - (xx[68] + xx[51] * (xx[11] * xx[3] +
10715 xx[21] * xx[5]) * state[13] + xx[14]));
10716 ii[0] = 162;
10717
10718 {
10719 int ll;
10720 for (ll = 163; ll < 177; ++ll)
10721 if (xx[ll] > xx[ii[0]])
10722 ii[0] = ll;
10723 }
10724
10725 ii[0] -= 162;
10726 xx[0] = xx[162 + (ii[0])];
10727 xx[1] = xx[0] - 0.01;
10728 if (xx[1] < 0.0)
10729 ii[0] = -1;
10730 else if (xx[1] > 0.0)
10731 ii[0] = +1;
10732 else
10733 ii[0] = 0;
10734 ii[1] = ii[0];
10735 if (0 > ii[1])
10736 ii[1] = 0;
10737 return ii[1];
10738}
10739
10740PmfMessageId PlatformAssem_f0ca4364_1_projectStateSim(const void *mech, const
10741 double *rtdv, const int *eqnEnableFlags, const double *input, double *state,
10742 void *neDiagMgr0)
10743{
10744 NeuDiagnosticManager *neDiagMgr = (NeuDiagnosticManager *) neDiagMgr0;
10745 int ii[15];
10746 double xx[1964];
10747 (void) mech;
10748 (void) rtdv;
10749 (void) eqnEnableFlags;
10750 (void) input;
10751 (void) neDiagMgr;
10752 xx[0] = 0.0;
10753 xx[1] = 0.7058357201813958;
10754 xx[2] = 0.5;
10755 xx[3] = xx[2] * state[23];
10756 xx[4] = sin(xx[3]);
10757 xx[5] = 0.7058407546227096;
10758 xx[6] = cos(xx[3]);
10759 xx[3] = xx[1] * xx[4] - xx[5] * xx[6];
10760 xx[7] = xx[2] * state[25];
10761 xx[8] = cos(xx[7]);
10762 xx[9] = xx[3] * xx[8];
10763 xx[10] = sin(xx[7]);
10764 xx[7] = xx[1] * xx[6] + xx[5] * xx[4];
10765 xx[11] = xx[10] * xx[7];
10766 xx[12] = 0.04233709306330295;
10767 xx[13] = 0.04233598682685397;
10768 xx[14] = xx[12] * xx[6] + xx[13] * xx[4];
10769 xx[15] = xx[12] * xx[4] - xx[13] * xx[6];
10770 xx[4] = - (xx[8] * xx[14] + xx[15] * xx[10]);
10771 xx[6] = xx[10] * xx[14] - xx[15] * xx[8];
10772 xx[16] = xx[3] * xx[10] + xx[8] * xx[7];
10773 xx[17] = xx[9] - xx[11];
10774 xx[18] = xx[4];
10775 xx[19] = xx[6];
10776 xx[20] = xx[16];
10777 xx[21] = 3.980251324392935e-7;
10778 xx[22] = 1.0;
10779 xx[23] = xx[22] / sqrt(state[27] * state[27] + state[28] * state[28] + state
10780 [29] * state[29] + state[30] * state[30]);
10781 xx[24] = xx[23] * state[30];
10782 xx[25] = 0.999999999999921;
10783 xx[26] = xx[23] * state[27];
10784 xx[27] = xx[21] * xx[24] - xx[25] * xx[26];
10785 xx[28] = xx[23] * state[29];
10786 xx[29] = xx[23] * state[28];
10787 xx[23] = xx[21] * xx[28] + xx[25] * xx[29];
10788 xx[30] = - xx[23];
10789 xx[31] = xx[25] * xx[28] - xx[21] * xx[29];
10790 xx[32] = - xx[31];
10791 xx[33] = xx[21] * xx[26] + xx[25] * xx[24];
10792 xx[34] = - xx[33];
10793 xx[35] = xx[27];
10794 xx[36] = xx[30];
10795 xx[37] = xx[32];
10796 xx[38] = xx[34];
10797 xx[39] = xx[22] / sqrt(state[34] * state[34] + state[35] * state[35] + state
10798 [36] * state[36] + state[37] * state[37]);
10799 xx[40] = xx[39] * state[37];
10800 xx[41] = 3.980251340548381e-7;
10801 xx[42] = xx[39] * state[34];
10802 xx[43] = xx[25] * xx[40] - xx[41] * xx[42];
10803 xx[44] = xx[39] * state[36];
10804 xx[45] = xx[39] * state[35];
10805 xx[39] = xx[25] * xx[44] - xx[41] * xx[45];
10806 xx[46] = xx[41] * xx[44] + xx[25] * xx[45];
10807 xx[47] = - xx[46];
10808 xx[48] = xx[41] * xx[40] + xx[25] * xx[42];
10809 xx[49] = - xx[48];
10810 xx[50] = xx[43];
10811 xx[51] = xx[39];
10812 xx[52] = xx[47];
10813 xx[53] = xx[49];
10814 xx[54] = xx[2] * state[43];
10815 xx[55] = cos(xx[54]);
10816 xx[56] = 0.3535533905932732;
10817 xx[57] = 0.8660254037844377;
10818 xx[58] = xx[2] * state[41];
10819 xx[59] = sin(xx[58]);
10820 xx[60] = xx[57] * xx[59];
10821 xx[61] = xx[56] * xx[60];
10822 xx[62] = 0.6123724356957949;
10823 xx[63] = 0.5000000000000017;
10824 xx[64] = xx[63] * xx[59];
10825 xx[59] = xx[62] * xx[64];
10826 xx[65] = cos(xx[58]);
10827 xx[58] = xx[62] * xx[65];
10828 xx[66] = xx[61] + xx[59] - xx[58];
10829 xx[67] = sin(xx[54]);
10830 xx[54] = xx[59] + xx[58] + xx[61];
10831 xx[58] = xx[55] * xx[66] + xx[67] * xx[54];
10832 xx[59] = xx[62] * xx[60];
10833 xx[60] = xx[56] * xx[65];
10834 xx[61] = xx[56] * xx[64];
10835 xx[64] = xx[59] + xx[60] - xx[61];
10836 xx[65] = xx[60] - xx[59] + xx[61];
10837 xx[59] = xx[64] * xx[55] - xx[67] * xx[65];
10838 xx[60] = xx[55] * xx[65] + xx[64] * xx[67];
10839 xx[61] = xx[55] * xx[54] - xx[67] * xx[66];
10840 pm_math_quatCompose(xx + 50, xx + 58, xx + 68);
10841 pm_math_quatCompose(xx + 35, xx + 68, xx + 72);
10842 pm_math_quatCompose(xx + 17, xx + 72, xx + 76);
10843 xx[80] = 2.0;
10844 xx[81] = xx[80] * (xx[73] * xx[75] - xx[72] * xx[74]);
10845 xx[82] = (xx[72] * xx[73] + xx[74] * xx[75]) * xx[80];
10846 xx[83] = xx[22] - (xx[73] * xx[73] + xx[74] * xx[74]) * xx[80];
10847 xx[72] = 7.599121945184391e-12;
10848 xx[73] = 5.036130209737022e-12;
10849 xx[74] = 5.192027881355888e-12;
10850 xx[84] = - xx[72];
10851 xx[85] = xx[73];
10852 xx[86] = - xx[74];
10853 pm_math_cross3(xx + 81, xx + 84, xx + 87);
10854 pm_math_quatXform(xx + 76, xx + 87, xx + 81);
10855 xx[75] = xx[66];
10856 xx[76] = xx[64];
10857 xx[77] = xx[65];
10858 xx[78] = xx[54];
10859 xx[79] = 0.02539999999999815;
10860 xx[87] = 2.191920996097441e-12;
10861 xx[88] = xx[87] * xx[67];
10862 xx[89] = xx[55] * xx[88];
10863 xx[90] = 3.368449963403463e-13;
10864 xx[91] = xx[90] * xx[67];
10865 xx[92] = xx[91] * xx[67];
10866 xx[93] = xx[79] + xx[80] * (xx[89] + xx[92]) - xx[90];
10867 xx[94] = xx[88] * xx[67];
10868 xx[88] = xx[55] * xx[91];
10869 xx[91] = xx[87] - (xx[94] - xx[88]) * xx[80];
10870 xx[95] = 0.1524264000010511;
10871 xx[96] = - xx[95];
10872 xx[97] = - xx[93];
10873 xx[98] = - xx[91];
10874 xx[99] = xx[96];
10875 pm_math_quatXform(xx + 75, xx + 97, xx + 100);
10876 xx[103] = 7.483145982728478e-12;
10877 xx[104] = 0.1158410329922703;
10878 xx[105] = 0.09621024525612519;
10879 xx[106] = xx[105] * xx[65];
10880 xx[107] = xx[64];
10881 xx[108] = xx[65];
10882 xx[109] = xx[54];
10883 xx[110] = xx[104] * xx[54] - xx[64] * xx[105];
10884 xx[111] = xx[104] * xx[65];
10885 xx[112] = xx[106];
10886 xx[113] = xx[110];
10887 xx[114] = - xx[111];
10888 pm_math_cross3(xx + 107, xx + 112, xx + 115);
10889 xx[107] = xx[103] + xx[104] + (xx[106] * xx[66] + xx[115]) * xx[80];
10890 xx[106] = xx[100] - xx[107];
10891 xx[108] = 5.088251355846174e-12;
10892 xx[109] = xx[108] - (xx[66] * xx[110] + xx[116]) * xx[80];
10893 xx[110] = xx[101] + xx[109];
10894 xx[100] = 4.00000000521855e-3;
10895 xx[101] = xx[100] + xx[105] + xx[80] * (xx[117] - xx[111] * xx[66]);
10896 xx[111] = xx[102] - xx[101];
10897 xx[112] = xx[106];
10898 xx[113] = xx[110];
10899 xx[114] = xx[111];
10900 pm_math_quatXform(xx + 50, xx + 112, xx + 115);
10901 xx[102] = 3.641924106626229e-8;
10902 xx[112] = xx[72];
10903 xx[113] = - xx[73];
10904 xx[114] = xx[74];
10905 pm_math_quatXform(xx + 50, xx + 112, xx + 118);
10906 xx[121] = xx[102] + xx[118];
10907 xx[122] = xx[115] + xx[121];
10908 xx[123] = 0.04574999999998041;
10909 xx[124] = xx[123] + xx[119];
10910 xx[125] = xx[116] + xx[124];
10911 xx[115] = 2.92603149291605e-7;
10912 xx[116] = xx[115] + xx[120];
10913 xx[118] = xx[117] + xx[116];
10914 xx[126] = xx[122];
10915 xx[127] = xx[125];
10916 xx[128] = xx[118];
10917 pm_math_quatXform(xx + 35, xx + 126, xx + 129);
10918 xx[117] = 3.641162862673871e-8;
10919 xx[119] = 0.04575000000717538;
10920 xx[126] = xx[117];
10921 xx[127] = xx[119];
10922 xx[128] = - 2.926046524752066e-7;
10923 pm_math_quatXform(xx + 35, xx + 126, xx + 132);
10924 xx[120] = xx[130] + xx[133];
10925 xx[130] = xx[129] + xx[132];
10926 xx[129] = xx[120] * xx[10] - xx[130] * xx[8];
10927 xx[131] = 3.107391981487723e-12;
10928 xx[135] = 9.83617579279345e-12;
10929 xx[136] = xx[131] * xx[8] + xx[135] * xx[10];
10930 xx[137] = xx[80] * xx[136] * xx[10];
10931 xx[138] = xx[80] * xx[10] * xx[129] - (xx[120] - xx[137]) - xx[135];
10932 xx[139] = xx[3];
10933 xx[140] = xx[7];
10934 xx[141] = xx[15];
10935 xx[120] = xx[80] * xx[136] * xx[8];
10936 xx[136] = xx[130] + xx[80] * xx[8] * xx[129] + xx[120] - xx[131];
10937 xx[129] = xx[15] * xx[136];
10938 xx[130] = xx[15] * xx[138];
10939 xx[142] = xx[3] * xx[136] - xx[138] * xx[7];
10940 xx[143] = - xx[129];
10941 xx[144] = xx[130];
10942 xx[145] = xx[142];
10943 pm_math_cross3(xx + 139, xx + 143, xx + 146);
10944 xx[149] = - (xx[11] - xx[9]);
10945 xx[150] = xx[4];
10946 xx[151] = xx[6];
10947 xx[152] = xx[16];
10948 pm_math_quatCompose(xx + 149, xx + 35, xx + 153);
10949 pm_math_quatCompose(xx + 153, xx + 68, xx + 157);
10950 xx[4] = 7.960502648785241e-7;
10951 xx[6] = xx[4] * xx[71];
10952 xx[9] = xx[4] * xx[69] + xx[70];
10953 xx[143] = xx[6];
10954 xx[144] = xx[71];
10955 xx[145] = - xx[9];
10956 pm_math_cross3(xx + 69, xx + 143, xx + 161);
10957 xx[11] = xx[68] * xx[71];
10958 xx[143] = xx[22] + (xx[161] - xx[68] * xx[6]) * xx[80];
10959 xx[144] = xx[80] * (xx[162] - xx[11]) - xx[4];
10960 xx[145] = xx[80] * (xx[163] + xx[68] * xx[9]);
10961 pm_math_cross3(xx + 143, xx + 84, xx + 161);
10962 pm_math_quatXform(xx + 157, xx + 161, xx + 143);
10963 xx[9] = - (xx[118] * xx[4]);
10964 xx[161] = xx[9];
10965 xx[162] = - xx[118];
10966 xx[163] = xx[125] + xx[122] * xx[4];
10967 pm_math_quatXform(xx + 35, xx + 161, xx + 164);
10968 xx[16] = 2.329280111075767e-13;
10969 xx[161] = 2.926046524751139e-7;
10970 xx[167] = xx[16];
10971 xx[168] = xx[161];
10972 xx[169] = 0.04575000000718987;
10973 pm_math_quatXform(xx + 35, xx + 167, xx + 170);
10974 xx[173] = xx[164] + xx[170];
10975 xx[174] = xx[165] + xx[171];
10976 xx[175] = xx[166] + xx[172];
10977 pm_math_quatXform(xx + 149, xx + 173, xx + 162);
10978 xx[165] = xx[69] - xx[4] * xx[70];
10979 xx[173] = - xx[71];
10980 xx[174] = xx[6];
10981 xx[175] = xx[165];
10982 pm_math_cross3(xx + 69, xx + 173, xx + 176);
10983 xx[173] = xx[4] + (xx[11] + xx[176]) * xx[80];
10984 xx[174] = xx[22] + xx[80] * (xx[177] - xx[4] * xx[11]);
10985 xx[175] = xx[80] * (xx[178] - xx[68] * xx[165]);
10986 pm_math_cross3(xx + 173, xx + 84, xx + 176);
10987 pm_math_quatXform(xx + 157, xx + 176, xx + 173);
10988 xx[176] = xx[118];
10989 xx[177] = xx[9];
10990 xx[178] = xx[125] * xx[4] - xx[122];
10991 pm_math_quatXform(xx + 35, xx + 176, xx + 179);
10992 xx[176] = - xx[161];
10993 xx[177] = xx[16];
10994 xx[178] = 7.670997177269469e-12;
10995 pm_math_quatXform(xx + 35, xx + 176, xx + 182);
10996 xx[185] = xx[179] + xx[182];
10997 xx[186] = xx[180] + xx[183];
10998 xx[187] = xx[181] + xx[184];
10999 pm_math_quatXform(xx + 149, xx + 185, xx + 179);
11000 xx[185] = xx[80] * (xx[69] * xx[71] - xx[68] * xx[70]);
11001 xx[186] = (xx[68] * xx[69] + xx[70] * xx[71]) * xx[80];
11002 xx[187] = xx[22] - (xx[69] * xx[69] + xx[70] * xx[70]) * xx[80];
11003 pm_math_cross3(xx + 185, xx + 84, xx + 68);
11004 pm_math_quatXform(xx + 157, xx + 68, xx + 185);
11005 xx[68] = xx[30];
11006 xx[69] = xx[32];
11007 xx[70] = xx[34];
11008 xx[6] = xx[122] * xx[33];
11009 xx[9] = xx[125] * xx[33];
11010 xx[11] = xx[122] * xx[23] + xx[31] * xx[125];
11011 xx[157] = xx[6];
11012 xx[158] = xx[9];
11013 xx[159] = - xx[11];
11014 pm_math_cross3(xx + 68, xx + 157, xx + 188);
11015 xx[16] = xx[117] * xx[33];
11016 xx[30] = xx[119] * xx[33];
11017 xx[32] = xx[117] * xx[23] + xx[31] * xx[119];
11018 xx[157] = xx[16];
11019 xx[158] = xx[30];
11020 xx[159] = - xx[32];
11021 pm_math_cross3(xx + 68, xx + 157, xx + 191);
11022 xx[34] = xx[80] * (xx[191] + xx[16] * xx[27]);
11023 xx[16] = (xx[30] * xx[27] + xx[192]) * xx[80];
11024 xx[30] = (xx[193] - xx[32] * xx[27]) * xx[80];
11025 xx[157] = xx[80] * (xx[188] + xx[6] * xx[27]) + xx[34] - xx[125] - xx[119];
11026 xx[158] = xx[122] + xx[80] * (xx[189] + xx[9] * xx[27]) + xx[16] + xx[117];
11027 xx[159] = (xx[190] - xx[27] * xx[11]) * xx[80] + xx[30];
11028 pm_math_quatXform(xx + 149, xx + 157, xx + 188);
11029 pm_math_quatCompose(xx + 153, xx + 50, xx + 157);
11030 pm_math_quatCompose(xx + 157, xx + 58, xx + 191);
11031 xx[6] = xx[60] * xx[60];
11032 xx[9] = xx[61] * xx[61];
11033 xx[11] = xx[60] * xx[59];
11034 xx[32] = xx[58] * xx[61];
11035 xx[71] = xx[60] * xx[58];
11036 xx[118] = xx[61] * xx[59];
11037 xx[195] = xx[22] - (xx[6] + xx[9]) * xx[80];
11038 xx[196] = xx[80] * (xx[11] - xx[32]);
11039 xx[197] = (xx[71] + xx[118]) * xx[80];
11040 pm_math_cross3(xx + 195, xx + 84, xx + 198);
11041 pm_math_quatXform(xx + 191, xx + 198, xx + 195);
11042 xx[198] = xx[39];
11043 xx[199] = xx[47];
11044 xx[200] = xx[49];
11045 xx[47] = xx[46] * xx[110];
11046 xx[49] = xx[48] * xx[111];
11047 xx[122] = xx[47] + xx[49];
11048 xx[125] = xx[110] * xx[39];
11049 xx[161] = xx[111] * xx[39];
11050 xx[201] = - xx[122];
11051 xx[202] = - xx[125];
11052 xx[203] = - xx[161];
11053 pm_math_cross3(xx + 198, xx + 201, xx + 204);
11054 xx[165] = xx[46] * xx[73];
11055 xx[166] = xx[48] * xx[74];
11056 xx[201] = xx[165] - xx[166];
11057 xx[202] = xx[73] * xx[39];
11058 xx[203] = xx[74] * xx[39];
11059 xx[207] = xx[201];
11060 xx[208] = xx[202];
11061 xx[209] = - xx[203];
11062 pm_math_cross3(xx + 198, xx + 207, xx + 210);
11063 xx[207] = (xx[43] * xx[201] + xx[210]) * xx[80];
11064 xx[201] = xx[80] * (xx[211] + xx[202] * xx[43]);
11065 xx[202] = (xx[212] - xx[203] * xx[43]) * xx[80];
11066 xx[208] = xx[80] * (xx[204] - xx[122] * xx[43]) + xx[207];
11067 xx[209] = xx[80] * (xx[205] - xx[125] * xx[43]) + xx[201] - xx[111] - xx[74];
11068 xx[210] = xx[110] + xx[80] * (xx[206] - xx[161] * xx[43]) + xx[202] - xx[73];
11069 pm_math_quatXform(xx + 153, xx + 208, xx + 203);
11070 xx[122] = xx[59] * xx[59];
11071 xx[125] = xx[60] * xx[61];
11072 xx[60] = xx[58] * xx[59];
11073 xx[208] = (xx[32] + xx[11]) * xx[80];
11074 xx[209] = xx[22] - (xx[9] + xx[122]) * xx[80];
11075 xx[210] = xx[80] * (xx[125] - xx[60]);
11076 pm_math_cross3(xx + 208, xx + 84, xx + 211);
11077 pm_math_quatXform(xx + 191, xx + 211, xx + 208);
11078 xx[9] = xx[46] * xx[106];
11079 xx[11] = xx[106] * xx[39];
11080 xx[32] = xx[11] - xx[49];
11081 xx[49] = xx[46] * xx[111];
11082 xx[211] = xx[9];
11083 xx[212] = xx[32];
11084 xx[213] = xx[49];
11085 pm_math_cross3(xx + 198, xx + 211, xx + 214);
11086 xx[58] = xx[46] * xx[72];
11087 xx[59] = xx[72] * xx[39];
11088 xx[61] = xx[166] - xx[59];
11089 xx[161] = xx[46] * xx[74];
11090 xx[211] = xx[58];
11091 xx[212] = - xx[61];
11092 xx[213] = xx[161];
11093 pm_math_cross3(xx + 198, xx + 211, xx + 217);
11094 xx[166] = xx[80] * (xx[217] + xx[58] * xx[43]);
11095 xx[58] = xx[80] * (xx[218] - xx[61] * xx[43]);
11096 xx[61] = (xx[161] * xx[43] + xx[219]) * xx[80];
11097 xx[211] = xx[111] + (xx[9] * xx[43] + xx[214]) * xx[80] + xx[166] + xx[74];
11098 xx[212] = (xx[43] * xx[32] + xx[215]) * xx[80] + xx[58];
11099 xx[213] = (xx[49] * xx[43] + xx[216]) * xx[80] + xx[61] - xx[106] - xx[72];
11100 pm_math_quatXform(xx + 153, xx + 211, xx + 214);
11101 xx[211] = xx[80] * (xx[118] - xx[71]);
11102 xx[212] = (xx[60] + xx[125]) * xx[80];
11103 xx[213] = xx[22] - (xx[122] + xx[6]) * xx[80];
11104 pm_math_cross3(xx + 211, xx + 84, xx + 217);
11105 pm_math_quatXform(xx + 191, xx + 217, xx + 211);
11106 xx[6] = xx[48] * xx[106];
11107 xx[9] = xx[48] * xx[110];
11108 xx[32] = xx[11] - xx[47];
11109 xx[191] = xx[6];
11110 xx[192] = xx[9];
11111 xx[193] = xx[32];
11112 pm_math_cross3(xx + 198, xx + 191, xx + 217);
11113 xx[11] = xx[48] * xx[72];
11114 xx[47] = xx[48] * xx[73];
11115 xx[49] = xx[59] + xx[165];
11116 xx[191] = xx[11];
11117 xx[192] = - xx[47];
11118 xx[193] = xx[49];
11119 pm_math_cross3(xx + 198, xx + 191, xx + 220);
11120 xx[59] = (xx[11] * xx[43] + xx[220]) * xx[80];
11121 xx[11] = xx[80] * (xx[221] - xx[47] * xx[43]);
11122 xx[47] = (xx[49] * xx[43] + xx[222]) * xx[80];
11123 xx[191] = (xx[6] * xx[43] + xx[217]) * xx[80] + xx[59] - xx[110] + xx[73];
11124 xx[192] = xx[106] + (xx[9] * xx[43] + xx[218]) * xx[80] + xx[11] + xx[72];
11125 xx[193] = (xx[43] * xx[32] + xx[219]) * xx[80] + xx[47];
11126 pm_math_quatXform(xx + 153, xx + 191, xx + 217);
11127 pm_math_quatCompose(xx + 157, xx + 75, xx + 191);
11128 xx[6] = xx[55] * xx[191] + xx[194] * xx[67];
11129 xx[9] = xx[55] * xx[192] - xx[193] * xx[67];
11130 xx[32] = xx[55] * xx[193] + xx[192] * xx[67];
11131 xx[49] = xx[55] * xx[194] - xx[191] * xx[67];
11132 xx[220] = xx[6];
11133 xx[221] = xx[9];
11134 xx[222] = xx[32];
11135 xx[223] = xx[49];
11136 xx[60] = xx[57] * xx[67];
11137 xx[71] = xx[80] * xx[55] * xx[60];
11138 xx[55] = 2.51806510486852e-12;
11139 xx[106] = 3.799560972592208e-12;
11140 xx[110] = xx[80] * xx[60] * xx[67] - xx[57];
11141 xx[224] = xx[74] * xx[71] + xx[55];
11142 xx[225] = xx[106] + xx[74] * xx[110];
11143 xx[226] = xx[73] * xx[110] - xx[72] * xx[71];
11144 pm_math_quatXform(xx + 220, xx + 224, xx + 227);
11145 xx[60] = 0.1320051346083185;
11146 xx[224] = - (xx[63] * xx[91]);
11147 xx[225] = xx[63] * xx[93] - xx[60];
11148 xx[226] = xx[57] * xx[91];
11149 pm_math_quatXform(xx + 75, xx + 224, xx + 230);
11150 xx[67] = 0.02540000000000025;
11151 xx[71] = xx[67] * xx[54];
11152 xx[91] = xx[64] * xx[67];
11153 xx[93] = xx[80] * (xx[71] * xx[66] - xx[91] * xx[65]);
11154 xx[110] = (xx[71] * xx[54] + xx[64] * xx[91]) * xx[80];
11155 xx[111] = (xx[91] * xx[66] + xx[71] * xx[65]) * xx[80];
11156 xx[224] = xx[230] + xx[93];
11157 xx[225] = xx[231] + xx[110] - xx[67];
11158 xx[226] = xx[232] - xx[111];
11159 pm_math_quatXform(xx + 157, xx + 224, xx + 230);
11160 xx[224] = xx[9];
11161 xx[225] = xx[32];
11162 xx[226] = xx[49];
11163 xx[71] = xx[72] * xx[49];
11164 xx[91] = xx[73] * xx[49];
11165 xx[49] = xx[72] * xx[9] - xx[32] * xx[73];
11166 xx[233] = - xx[71];
11167 xx[234] = xx[91];
11168 xx[235] = xx[49];
11169 pm_math_cross3(xx + 224, xx + 233, xx + 236);
11170 xx[9] = xx[80] * (xx[94] - xx[88]) - xx[87];
11171 xx[32] = (xx[89] + xx[92]) * xx[80] - xx[90];
11172 xx[88] = xx[194] * xx[32];
11173 xx[89] = xx[9] * xx[194];
11174 xx[92] = xx[192] * xx[32] - xx[9] * xx[193];
11175 xx[224] = - xx[88];
11176 xx[225] = xx[89];
11177 xx[226] = xx[92];
11178 pm_math_cross3(xx + 192, xx + 224, xx + 233);
11179 xx[94] = xx[2] * state[66];
11180 xx[118] = cos(xx[94]);
11181 xx[122] = 0.5901074779979936;
11182 xx[125] = xx[2] * state[64];
11183 xx[161] = cos(xx[125]);
11184 xx[165] = 0.5901036711621467;
11185 xx[206] = sin(xx[125]);
11186 xx[125] = xx[122] * xx[161] + xx[165] * xx[206];
11187 xx[224] = xx[118] * xx[125];
11188 xx[225] = xx[165] * xx[161] - xx[122] * xx[206];
11189 xx[226] = sin(xx[94]);
11190 xx[94] = xx[225] * xx[226];
11191 xx[239] = 0.389585375426561;
11192 xx[240] = 0.3895819001770367;
11193 xx[241] = xx[239] * xx[161] - xx[240] * xx[206];
11194 xx[242] = xx[240] * xx[161] + xx[239] * xx[206];
11195 xx[161] = - (xx[241] * xx[118] - xx[226] * xx[242]);
11196 xx[206] = xx[241] * xx[226] + xx[118] * xx[242];
11197 xx[243] = xx[225] * xx[118] - xx[226] * xx[125];
11198 xx[244] = - (xx[224] + xx[94]);
11199 xx[245] = xx[161];
11200 xx[246] = xx[206];
11201 xx[247] = xx[243];
11202 xx[248] = xx[22] / sqrt(state[68] * state[68] + state[69] * state[69] + state
11203 [70] * state[70] + state[71] * state[71]);
11204 xx[249] = xx[248] * state[71];
11205 xx[250] = xx[248] * state[68];
11206 xx[251] = xx[21] * xx[249] - xx[25] * xx[250];
11207 xx[252] = xx[248] * state[70];
11208 xx[253] = xx[248] * state[69];
11209 xx[248] = xx[21] * xx[252] + xx[25] * xx[253];
11210 xx[254] = - xx[248];
11211 xx[255] = xx[25] * xx[252] - xx[21] * xx[253];
11212 xx[256] = - xx[255];
11213 xx[257] = xx[21] * xx[250] + xx[25] * xx[249];
11214 xx[258] = - xx[257];
11215 xx[259] = xx[251];
11216 xx[260] = xx[254];
11217 xx[261] = xx[256];
11218 xx[262] = xx[258];
11219 pm_math_quatCompose(xx + 244, xx + 259, xx + 263);
11220 xx[244] = (xx[255] * xx[251] + xx[248] * xx[257]) * xx[80];
11221 xx[245] = xx[80] * (xx[255] * xx[257] - xx[248] * xx[251]);
11222 xx[246] = xx[22] - (xx[248] * xx[248] + xx[255] * xx[255]) * xx[80];
11223 xx[267] = xx[102];
11224 xx[268] = xx[123];
11225 xx[269] = xx[115];
11226 pm_math_cross3(xx + 244, xx + 267, xx + 270);
11227 pm_math_quatXform(xx + 263, xx + 270, xx + 244);
11228 pm_math_quatXform(xx + 259, xx + 126, xx + 263);
11229 xx[247] = xx[264] * xx[226] - xx[118] * xx[263];
11230 xx[266] = 6.924287580811761e-12;
11231 xx[270] = 1.024070757638107e-11;
11232 xx[271] = xx[266] * xx[226] - xx[270] * xx[118];
11233 xx[272] = xx[80] * xx[226] * xx[247] - (xx[264] + xx[80] * xx[271] * xx[226])
11234 + xx[266];
11235 xx[273] = - xx[125];
11236 xx[274] = - xx[242];
11237 xx[275] = xx[273];
11238 xx[276] = xx[225];
11239 xx[277] = xx[274];
11240 xx[278] = xx[263] + xx[80] * xx[118] * xx[247] - xx[80] * xx[271] * xx[118] -
11241 xx[270];
11242 xx[247] = xx[278] * xx[242];
11243 xx[271] = xx[272] * xx[242];
11244 xx[279] = xx[278] * xx[125] + xx[225] * xx[272];
11245 xx[280] = xx[247];
11246 xx[281] = - xx[271];
11247 xx[282] = - xx[279];
11248 pm_math_cross3(xx + 275, xx + 280, xx + 283);
11249 xx[286] = - (xx[94] + xx[224]);
11250 xx[287] = xx[161];
11251 xx[288] = xx[206];
11252 xx[289] = xx[243];
11253 pm_math_quatCompose(xx + 286, xx + 259, xx + 290);
11254 xx[94] = - 2.329268144978725e-13;
11255 xx[280] = xx[94];
11256 xx[281] = - xx[115];
11257 xx[282] = 0.0457500000000094;
11258 pm_math_quatXform(xx + 290, xx + 280, xx + 294);
11259 pm_math_quatXform(xx + 259, xx + 167, xx + 297);
11260 pm_math_quatXform(xx + 286, xx + 297, xx + 300);
11261 xx[297] = xx[115];
11262 xx[298] = xx[94];
11263 xx[299] = 5.855191459023036e-14;
11264 pm_math_quatXform(xx + 290, xx + 297, xx + 303);
11265 pm_math_quatXform(xx + 259, xx + 176, xx + 306);
11266 pm_math_quatXform(xx + 286, xx + 306, xx + 259);
11267 xx[94] = xx[102] * xx[293];
11268 xx[161] = xx[102] * xx[291] + xx[123] * xx[292];
11269 xx[306] = - xx[94];
11270 xx[307] = - (xx[123] * xx[293]);
11271 xx[308] = xx[161];
11272 pm_math_cross3(xx + 291, xx + 306, xx + 309);
11273 xx[306] = xx[254];
11274 xx[307] = xx[256];
11275 xx[308] = xx[258];
11276 xx[206] = xx[117] * xx[257];
11277 xx[224] = xx[119] * xx[257];
11278 xx[243] = xx[117] * xx[248] + xx[255] * xx[119];
11279 xx[254] = xx[206];
11280 xx[255] = xx[224];
11281 xx[256] = - xx[243];
11282 pm_math_cross3(xx + 306, xx + 254, xx + 312);
11283 xx[254] = xx[80] * (xx[312] + xx[206] * xx[251]) - xx[119];
11284 xx[255] = xx[117] + (xx[224] * xx[251] + xx[313]) * xx[80];
11285 xx[256] = (xx[314] - xx[243] * xx[251]) * xx[80];
11286 pm_math_quatXform(xx + 286, xx + 254, xx + 306);
11287 xx[206] = xx[2] * state[45];
11288 xx[224] = sin(xx[206]);
11289 xx[243] = xx[62] * xx[224];
11290 xx[248] = cos(xx[206]);
11291 xx[206] = xx[62] * xx[248];
11292 xx[251] = xx[243] - xx[206];
11293 xx[254] = xx[56] * xx[248];
11294 xx[248] = xx[56] * xx[224];
11295 xx[224] = xx[254] + xx[248];
11296 xx[255] = - xx[224];
11297 xx[256] = xx[248] - xx[254];
11298 xx[248] = xx[243] + xx[206];
11299 xx[206] = - xx[248];
11300 xx[312] = xx[251];
11301 xx[313] = xx[255];
11302 xx[314] = xx[256];
11303 xx[315] = xx[206];
11304 pm_math_quatCompose(xx + 75, xx + 312, xx + 316);
11305 pm_math_quatCompose(xx + 50, xx + 316, xx + 320);
11306 pm_math_quatCompose(xx + 35, xx + 320, xx + 324);
11307 pm_math_quatCompose(xx + 17, xx + 324, xx + 328);
11308 xx[332] = xx[80] * (xx[325] * xx[327] - xx[324] * xx[326]);
11309 xx[333] = (xx[324] * xx[325] + xx[326] * xx[327]) * xx[80];
11310 xx[334] = xx[22] - (xx[325] * xx[325] + xx[326] * xx[326]) * xx[80];
11311 pm_math_cross3(xx + 332, xx + 84, xx + 324);
11312 pm_math_quatXform(xx + 328, xx + 324, xx + 332);
11313 xx[243] = 0.1412410329922704;
11314 xx[254] = 1.121202762681406e-11;
11315 xx[257] = 6.145027516349377e-13;
11316 xx[324] = - xx[254];
11317 xx[325] = - xx[257];
11318 xx[326] = - 3.999999999522439e-3;
11319 pm_math_quatXform(xx + 312, xx + 324, xx + 327);
11320 xx[258] = xx[243] - xx[327];
11321 xx[262] = 0.05221615474387575;
11322 xx[327] = xx[262] - xx[329];
11323 xx[329] = xx[258];
11324 xx[330] = - xx[328];
11325 xx[331] = xx[327];
11326 pm_math_quatXform(xx + 75, xx + 329, xx + 335);
11327 xx[338] = xx[335] - xx[107];
11328 xx[339] = xx[336] + xx[109];
11329 xx[335] = xx[337] - xx[101];
11330 xx[340] = xx[338];
11331 xx[341] = xx[339];
11332 xx[342] = xx[335];
11333 pm_math_quatXform(xx + 50, xx + 340, xx + 343);
11334 xx[336] = xx[343] + xx[121];
11335 xx[337] = xx[344] + xx[124];
11336 xx[340] = xx[345] + xx[116];
11337 xx[341] = xx[336];
11338 xx[342] = xx[337];
11339 xx[343] = xx[340];
11340 pm_math_quatXform(xx + 35, xx + 341, xx + 344);
11341 xx[341] = xx[345] + xx[133];
11342 xx[342] = xx[344] + xx[132];
11343 xx[343] = xx[341] * xx[10] - xx[342] * xx[8];
11344 xx[344] = xx[80] * xx[10] * xx[343] - (xx[341] - xx[137]) - xx[135];
11345 xx[341] = xx[342] + xx[80] * xx[8] * xx[343] + xx[120] - xx[131];
11346 xx[342] = xx[341] * xx[15];
11347 xx[343] = xx[344] * xx[15];
11348 xx[345] = xx[341] * xx[3] - xx[344] * xx[7];
11349 xx[346] = - xx[342];
11350 xx[347] = xx[343];
11351 xx[348] = xx[345];
11352 pm_math_cross3(xx + 139, xx + 346, xx + 349);
11353 pm_math_quatCompose(xx + 153, xx + 320, xx + 352);
11354 xx[346] = xx[4] * xx[323];
11355 xx[347] = xx[4] * xx[321] + xx[322];
11356 xx[356] = xx[346];
11357 xx[357] = xx[323];
11358 xx[358] = - xx[347];
11359 pm_math_cross3(xx + 321, xx + 356, xx + 359);
11360 xx[348] = xx[320] * xx[323];
11361 xx[356] = xx[22] + (xx[359] - xx[320] * xx[346]) * xx[80];
11362 xx[357] = xx[80] * (xx[360] - xx[348]) - xx[4];
11363 xx[358] = xx[80] * (xx[361] + xx[320] * xx[347]);
11364 pm_math_cross3(xx + 356, xx + 84, xx + 359);
11365 pm_math_quatXform(xx + 352, xx + 359, xx + 356);
11366 xx[347] = - (xx[340] * xx[4]);
11367 xx[359] = xx[347];
11368 xx[360] = - xx[340];
11369 xx[361] = xx[337] + xx[336] * xx[4];
11370 pm_math_quatXform(xx + 35, xx + 359, xx + 362);
11371 xx[359] = xx[362] + xx[170];
11372 xx[360] = xx[363] + xx[171];
11373 xx[361] = xx[364] + xx[172];
11374 pm_math_quatXform(xx + 149, xx + 359, xx + 362);
11375 xx[359] = xx[321] - xx[4] * xx[322];
11376 xx[365] = - xx[323];
11377 xx[366] = xx[346];
11378 xx[367] = xx[359];
11379 pm_math_cross3(xx + 321, xx + 365, xx + 368);
11380 xx[365] = xx[4] + (xx[348] + xx[368]) * xx[80];
11381 xx[366] = xx[22] + xx[80] * (xx[369] - xx[4] * xx[348]);
11382 xx[367] = xx[80] * (xx[370] - xx[320] * xx[359]);
11383 pm_math_cross3(xx + 365, xx + 84, xx + 359);
11384 pm_math_quatXform(xx + 352, xx + 359, xx + 365);
11385 xx[359] = xx[340];
11386 xx[360] = xx[347];
11387 xx[361] = xx[337] * xx[4] - xx[336];
11388 pm_math_quatXform(xx + 35, xx + 359, xx + 346);
11389 xx[359] = xx[346] + xx[182];
11390 xx[360] = xx[347] + xx[183];
11391 xx[361] = xx[348] + xx[184];
11392 pm_math_quatXform(xx + 149, xx + 359, xx + 346);
11393 xx[359] = xx[80] * (xx[321] * xx[323] - xx[320] * xx[322]);
11394 xx[360] = (xx[320] * xx[321] + xx[322] * xx[323]) * xx[80];
11395 xx[361] = xx[22] - (xx[321] * xx[321] + xx[322] * xx[322]) * xx[80];
11396 pm_math_cross3(xx + 359, xx + 84, xx + 320);
11397 pm_math_quatXform(xx + 352, xx + 320, xx + 359);
11398 xx[320] = xx[336] * xx[33];
11399 xx[321] = xx[337] * xx[33];
11400 xx[322] = xx[336] * xx[23] + xx[337] * xx[31];
11401 xx[352] = xx[320];
11402 xx[353] = xx[321];
11403 xx[354] = - xx[322];
11404 pm_math_cross3(xx + 68, xx + 352, xx + 368);
11405 xx[352] = xx[80] * (xx[368] + xx[320] * xx[27]) + xx[34] - xx[337] - xx[119];
11406 xx[353] = xx[336] + xx[80] * (xx[369] + xx[321] * xx[27]) + xx[16] + xx[117];
11407 xx[354] = (xx[370] - xx[322] * xx[27]) * xx[80] + xx[30];
11408 pm_math_quatXform(xx + 149, xx + 352, xx + 320);
11409 pm_math_quatCompose(xx + 157, xx + 316, xx + 352);
11410 xx[323] = xx[318] * xx[318];
11411 xx[336] = xx[319] * xx[319];
11412 xx[337] = xx[317] * xx[318];
11413 xx[340] = xx[316] * xx[319];
11414 xx[368] = xx[316] * xx[318];
11415 xx[369] = xx[317] * xx[319];
11416 xx[370] = xx[22] - (xx[323] + xx[336]) * xx[80];
11417 xx[371] = xx[80] * (xx[337] - xx[340]);
11418 xx[372] = (xx[368] + xx[369]) * xx[80];
11419 pm_math_cross3(xx + 370, xx + 84, xx + 373);
11420 pm_math_quatXform(xx + 352, xx + 373, xx + 370);
11421 xx[373] = xx[339] * xx[46];
11422 xx[374] = xx[335] * xx[48];
11423 xx[375] = xx[373] + xx[374];
11424 xx[376] = xx[339] * xx[39];
11425 xx[377] = xx[335] * xx[39];
11426 xx[378] = - xx[375];
11427 xx[379] = - xx[376];
11428 xx[380] = - xx[377];
11429 pm_math_cross3(xx + 198, xx + 378, xx + 381);
11430 xx[378] = xx[80] * (xx[381] - xx[375] * xx[43]) + xx[207];
11431 xx[379] = xx[80] * (xx[382] - xx[376] * xx[43]) + xx[201] - xx[335] - xx[74];
11432 xx[380] = xx[339] + xx[80] * (xx[383] - xx[377] * xx[43]) + xx[202] - xx[73];
11433 pm_math_quatXform(xx + 153, xx + 378, xx + 375);
11434 xx[378] = xx[317] * xx[317];
11435 xx[379] = xx[318] * xx[319];
11436 xx[318] = xx[316] * xx[317];
11437 xx[380] = (xx[340] + xx[337]) * xx[80];
11438 xx[381] = xx[22] - (xx[336] + xx[378]) * xx[80];
11439 xx[382] = xx[80] * (xx[379] - xx[318]);
11440 pm_math_cross3(xx + 380, xx + 84, xx + 383);
11441 pm_math_quatXform(xx + 352, xx + 383, xx + 380);
11442 xx[316] = xx[338] * xx[46];
11443 xx[317] = xx[338] * xx[39];
11444 xx[319] = xx[317] - xx[374];
11445 xx[336] = xx[335] * xx[46];
11446 xx[383] = xx[316];
11447 xx[384] = xx[319];
11448 xx[385] = xx[336];
11449 pm_math_cross3(xx + 198, xx + 383, xx + 386);
11450 xx[383] = xx[335] + (xx[316] * xx[43] + xx[386]) * xx[80] + xx[166] + xx[74];
11451 xx[384] = (xx[319] * xx[43] + xx[387]) * xx[80] + xx[58];
11452 xx[385] = (xx[336] * xx[43] + xx[388]) * xx[80] + xx[61] - xx[338] - xx[72];
11453 pm_math_quatXform(xx + 153, xx + 383, xx + 335);
11454 xx[383] = xx[80] * (xx[369] - xx[368]);
11455 xx[384] = (xx[318] + xx[379]) * xx[80];
11456 xx[385] = xx[22] - (xx[378] + xx[323]) * xx[80];
11457 pm_math_cross3(xx + 383, xx + 84, xx + 386);
11458 pm_math_quatXform(xx + 352, xx + 386, xx + 383);
11459 xx[316] = xx[338] * xx[48];
11460 xx[318] = xx[339] * xx[48];
11461 xx[319] = xx[317] - xx[373];
11462 xx[352] = xx[316];
11463 xx[353] = xx[318];
11464 xx[354] = xx[319];
11465 pm_math_cross3(xx + 198, xx + 352, xx + 386);
11466 xx[352] = (xx[316] * xx[43] + xx[386]) * xx[80] + xx[59] - xx[339] + xx[73];
11467 xx[353] = xx[338] + (xx[318] * xx[43] + xx[387]) * xx[80] + xx[11] + xx[72];
11468 xx[354] = (xx[319] * xx[43] + xx[388]) * xx[80] + xx[47];
11469 pm_math_quatXform(xx + 153, xx + 352, xx + 316);
11470 pm_math_quatCompose(xx + 191, xx + 312, xx + 352);
11471 xx[312] = xx[255];
11472 xx[313] = xx[256];
11473 xx[314] = xx[206];
11474 xx[206] = xx[63] * xx[256];
11475 xx[255] = xx[248] * xx[57] - xx[224] * xx[63];
11476 xx[315] = xx[57] * xx[256];
11477 xx[338] = - xx[206];
11478 xx[339] = xx[255];
11479 xx[340] = xx[315];
11480 pm_math_cross3(xx + 312, xx + 338, xx + 386);
11481 xx[338] = xx[80] * (xx[386] + xx[206] * xx[251]) - xx[57];
11482 xx[339] = xx[80] * (xx[387] - xx[251] * xx[255]);
11483 xx[340] = (xx[388] - xx[315] * xx[251]) * xx[80] - xx[63];
11484 pm_math_cross3(xx + 338, xx + 84, xx + 386);
11485 pm_math_quatXform(xx + 352, xx + 386, xx + 338);
11486 xx[386] = - (xx[63] * xx[328]);
11487 xx[387] = xx[57] * xx[327] - xx[63] * xx[258];
11488 xx[388] = xx[57] * xx[328];
11489 pm_math_quatXform(xx + 75, xx + 386, xx + 389);
11490 xx[386] = xx[389] + xx[93];
11491 xx[387] = xx[390] + xx[110] - xx[67];
11492 xx[388] = xx[391] - xx[111];
11493 pm_math_quatXform(xx + 157, xx + 386, xx + 389);
11494 xx[206] = xx[72] * xx[355];
11495 xx[255] = xx[73] * xx[354] - xx[72] * xx[353];
11496 xx[386] = xx[206];
11497 xx[387] = - (xx[73] * xx[355]);
11498 xx[388] = xx[255];
11499 pm_math_cross3(xx + 353, xx + 386, xx + 392);
11500 xx[258] = xx[248] * xx[254];
11501 xx[315] = xx[248] * xx[257];
11502 xx[248] = xx[257] * xx[256] - xx[224] * xx[254];
11503 xx[386] = xx[258];
11504 xx[387] = xx[315];
11505 xx[388] = xx[248];
11506 pm_math_cross3(xx + 312, xx + 386, xx + 395);
11507 xx[312] = xx[80] * (xx[395] + xx[258] * xx[251]) - xx[257];
11508 xx[313] = xx[254] + (xx[315] * xx[251] + xx[396]) * xx[80];
11509 xx[314] = (xx[251] * xx[248] + xx[397]) * xx[80];
11510 pm_math_quatXform(xx + 191, xx + 312, xx + 386);
11511 xx[224] = xx[2] * state[53];
11512 xx[248] = sin(xx[224]);
11513 xx[251] = cos(xx[224]);
11514 xx[224] = xx[1] * xx[248] - xx[5] * xx[251];
11515 xx[256] = xx[2] * state[55];
11516 xx[258] = cos(xx[256]);
11517 xx[312] = xx[224] * xx[258];
11518 xx[313] = sin(xx[256]);
11519 xx[256] = xx[1] * xx[251] + xx[5] * xx[248];
11520 xx[314] = xx[313] * xx[256];
11521 xx[315] = xx[12] * xx[251] + xx[13] * xx[248];
11522 xx[319] = xx[12] * xx[248] - xx[13] * xx[251];
11523 xx[248] = - (xx[258] * xx[315] + xx[319] * xx[313]);
11524 xx[251] = xx[313] * xx[315] - xx[319] * xx[258];
11525 xx[323] = xx[224] * xx[313] + xx[258] * xx[256];
11526 xx[395] = xx[312] - xx[314];
11527 xx[396] = xx[248];
11528 xx[397] = xx[251];
11529 xx[398] = xx[323];
11530 xx[327] = xx[22] / sqrt(state[57] * state[57] + state[58] * state[58] + state
11531 [59] * state[59] + state[60] * state[60]);
11532 xx[328] = xx[327] * state[60];
11533 xx[368] = xx[327] * state[57];
11534 xx[369] = xx[21] * xx[328] - xx[25] * xx[368];
11535 xx[373] = xx[327] * state[59];
11536 xx[374] = xx[327] * state[58];
11537 xx[327] = xx[21] * xx[373] + xx[25] * xx[374];
11538 xx[378] = - xx[327];
11539 xx[379] = xx[25] * xx[373] - xx[21] * xx[374];
11540 xx[399] = - xx[379];
11541 xx[400] = xx[21] * xx[368] + xx[25] * xx[328];
11542 xx[401] = - xx[400];
11543 xx[402] = xx[369];
11544 xx[403] = xx[378];
11545 xx[404] = xx[399];
11546 xx[405] = xx[401];
11547 pm_math_quatCompose(xx + 395, xx + 402, xx + 406);
11548 xx[395] = (xx[379] * xx[369] + xx[400] * xx[327]) * xx[80];
11549 xx[396] = xx[80] * (xx[379] * xx[400] - xx[369] * xx[327]);
11550 xx[397] = xx[22] - (xx[327] * xx[327] + xx[379] * xx[379]) * xx[80];
11551 pm_math_cross3(xx + 395, xx + 267, xx + 410);
11552 pm_math_quatXform(xx + 406, xx + 410, xx + 395);
11553 pm_math_quatXform(xx + 402, xx + 126, xx + 406);
11554 xx[398] = xx[407] * xx[313] - xx[258] * xx[406];
11555 xx[409] = 9.27756931389703e-12;
11556 xx[410] = 5.443558296964576e-12;
11557 xx[411] = xx[409] * xx[258] + xx[410] * xx[313];
11558 xx[412] = xx[80] * xx[313] * xx[398] - (xx[407] + xx[80] * xx[411] * xx[313])
11559 + xx[410];
11560 xx[413] = xx[224];
11561 xx[414] = xx[256];
11562 xx[415] = xx[319];
11563 xx[416] = xx[406] + xx[80] * xx[258] * xx[398] - xx[80] * xx[411] * xx[258] +
11564 xx[409];
11565 xx[398] = xx[319] * xx[416];
11566 xx[411] = xx[319] * xx[412];
11567 xx[417] = xx[224] * xx[416] - xx[412] * xx[256];
11568 xx[418] = - xx[398];
11569 xx[419] = xx[411];
11570 xx[420] = xx[417];
11571 pm_math_cross3(xx + 413, xx + 418, xx + 421);
11572 xx[424] = - (xx[314] - xx[312]);
11573 xx[425] = xx[248];
11574 xx[426] = xx[251];
11575 xx[427] = xx[323];
11576 pm_math_quatCompose(xx + 424, xx + 402, xx + 428);
11577 pm_math_quatXform(xx + 428, xx + 280, xx + 418);
11578 pm_math_quatXform(xx + 402, xx + 167, xx + 432);
11579 pm_math_quatXform(xx + 424, xx + 432, xx + 435);
11580 pm_math_quatXform(xx + 428, xx + 297, xx + 432);
11581 pm_math_quatXform(xx + 402, xx + 176, xx + 438);
11582 pm_math_quatXform(xx + 424, xx + 438, xx + 402);
11583 xx[248] = xx[102] * xx[431];
11584 xx[251] = xx[102] * xx[429] + xx[123] * xx[430];
11585 xx[438] = - xx[248];
11586 xx[439] = - (xx[123] * xx[431]);
11587 xx[440] = xx[251];
11588 pm_math_cross3(xx + 429, xx + 438, xx + 441);
11589 xx[438] = xx[378];
11590 xx[439] = xx[399];
11591 xx[440] = xx[401];
11592 xx[312] = xx[117] * xx[400];
11593 xx[314] = xx[119] * xx[400];
11594 xx[323] = xx[117] * xx[327] + xx[379] * xx[119];
11595 xx[399] = xx[312];
11596 xx[400] = xx[314];
11597 xx[401] = - xx[323];
11598 pm_math_cross3(xx + 438, xx + 399, xx + 444);
11599 xx[399] = xx[80] * (xx[444] + xx[312] * xx[369]) - xx[119];
11600 xx[400] = xx[117] + (xx[314] * xx[369] + xx[445]) * xx[80];
11601 xx[401] = (xx[446] - xx[323] * xx[369]) * xx[80];
11602 pm_math_quatXform(xx + 424, xx + 399, xx + 438);
11603 xx[312] = 0.3535533905932758;
11604 xx[314] = xx[2] * state[47];
11605 xx[323] = cos(xx[314]);
11606 xx[327] = xx[312] * xx[323];
11607 xx[369] = sin(xx[314]);
11608 xx[314] = xx[312] * xx[369];
11609 xx[378] = xx[327] + xx[314];
11610 xx[379] = 0.6123724356957934;
11611 xx[399] = xx[379] * xx[369];
11612 xx[369] = xx[379] * xx[323];
11613 xx[323] = xx[399] - xx[369];
11614 xx[400] = xx[369] + xx[399];
11615 xx[369] = - xx[400];
11616 xx[399] = xx[314] - xx[327];
11617 xx[444] = - xx[378];
11618 xx[445] = xx[323];
11619 xx[446] = xx[369];
11620 xx[447] = xx[399];
11621 pm_math_quatCompose(xx + 75, xx + 444, xx + 448);
11622 pm_math_quatCompose(xx + 50, xx + 448, xx + 452);
11623 pm_math_quatCompose(xx + 35, xx + 452, xx + 456);
11624 pm_math_quatCompose(xx + 17, xx + 456, xx + 460);
11625 xx[464] = xx[80] * (xx[457] * xx[459] - xx[456] * xx[458]);
11626 xx[465] = (xx[456] * xx[457] + xx[458] * xx[459]) * xx[80];
11627 xx[466] = xx[22] - (xx[457] * xx[457] + xx[458] * xx[458]) * xx[80];
11628 pm_math_cross3(xx + 464, xx + 84, xx + 456);
11629 pm_math_quatXform(xx + 460, xx + 456, xx + 464);
11630 xx[314] = 0.1412410329922711;
11631 xx[327] = 3.881762117297072e-12;
11632 xx[401] = 3.80025733104361e-12;
11633 xx[456] = xx[327];
11634 xx[457] = - xx[401];
11635 xx[458] = 3.999999998874377e-3;
11636 pm_math_quatXform(xx + 444, xx + 456, xx + 459);
11637 xx[405] = xx[314] + xx[459];
11638 xx[462] = 0.05221615474387407;
11639 xx[459] = xx[462] - xx[461];
11640 xx[467] = - xx[405];
11641 xx[468] = - xx[460];
11642 xx[469] = xx[459];
11643 pm_math_quatXform(xx + 75, xx + 467, xx + 470);
11644 xx[461] = xx[470] - xx[107];
11645 xx[463] = xx[471] + xx[109];
11646 xx[470] = xx[472] - xx[101];
11647 xx[471] = xx[461];
11648 xx[472] = xx[463];
11649 xx[473] = xx[470];
11650 pm_math_quatXform(xx + 50, xx + 471, xx + 474);
11651 xx[471] = xx[474] + xx[121];
11652 xx[472] = xx[475] + xx[124];
11653 xx[473] = xx[476] + xx[116];
11654 pm_math_quatXform(xx + 35, xx + 471, xx + 474);
11655 xx[477] = xx[475] + xx[133];
11656 xx[475] = xx[474] + xx[132];
11657 xx[474] = xx[477] * xx[10] - xx[475] * xx[8];
11658 xx[476] = xx[80] * xx[10] * xx[474] - (xx[477] - xx[137]) - xx[135];
11659 xx[477] = xx[475] + xx[80] * xx[8] * xx[474] + xx[120] - xx[131];
11660 xx[474] = xx[15] * xx[477];
11661 xx[475] = xx[15] * xx[476];
11662 xx[478] = xx[3] * xx[477] - xx[476] * xx[7];
11663 xx[479] = - xx[474];
11664 xx[480] = xx[475];
11665 xx[481] = xx[478];
11666 pm_math_cross3(xx + 139, xx + 479, xx + 482);
11667 pm_math_quatCompose(xx + 153, xx + 452, xx + 485);
11668 xx[479] = xx[4] * xx[455];
11669 xx[480] = xx[4] * xx[453] + xx[454];
11670 xx[489] = xx[479];
11671 xx[490] = xx[455];
11672 xx[491] = - xx[480];
11673 pm_math_cross3(xx + 453, xx + 489, xx + 492);
11674 xx[481] = xx[452] * xx[455];
11675 xx[489] = xx[22] + (xx[492] - xx[452] * xx[479]) * xx[80];
11676 xx[490] = xx[80] * (xx[493] - xx[481]) - xx[4];
11677 xx[491] = xx[80] * (xx[494] + xx[452] * xx[480]);
11678 pm_math_cross3(xx + 489, xx + 84, xx + 492);
11679 pm_math_quatXform(xx + 485, xx + 492, xx + 489);
11680 xx[480] = - (xx[473] * xx[4]);
11681 xx[492] = xx[480];
11682 xx[493] = - xx[473];
11683 xx[494] = xx[472] + xx[471] * xx[4];
11684 pm_math_quatXform(xx + 35, xx + 492, xx + 495);
11685 xx[492] = xx[495] + xx[170];
11686 xx[493] = xx[496] + xx[171];
11687 xx[494] = xx[497] + xx[172];
11688 pm_math_quatXform(xx + 149, xx + 492, xx + 495);
11689 xx[492] = xx[453] - xx[4] * xx[454];
11690 xx[498] = - xx[455];
11691 xx[499] = xx[479];
11692 xx[500] = xx[492];
11693 pm_math_cross3(xx + 453, xx + 498, xx + 501);
11694 xx[498] = xx[4] + (xx[481] + xx[501]) * xx[80];
11695 xx[499] = xx[22] + xx[80] * (xx[502] - xx[4] * xx[481]);
11696 xx[500] = xx[80] * (xx[503] - xx[452] * xx[492]);
11697 pm_math_cross3(xx + 498, xx + 84, xx + 492);
11698 pm_math_quatXform(xx + 485, xx + 492, xx + 498);
11699 xx[492] = xx[473];
11700 xx[493] = xx[480];
11701 xx[494] = xx[472] * xx[4] - xx[471];
11702 pm_math_quatXform(xx + 35, xx + 492, xx + 479);
11703 xx[492] = xx[479] + xx[182];
11704 xx[493] = xx[480] + xx[183];
11705 xx[494] = xx[481] + xx[184];
11706 pm_math_quatXform(xx + 149, xx + 492, xx + 479);
11707 xx[492] = xx[80] * (xx[453] * xx[455] - xx[452] * xx[454]);
11708 xx[493] = (xx[452] * xx[453] + xx[454] * xx[455]) * xx[80];
11709 xx[494] = xx[22] - (xx[453] * xx[453] + xx[454] * xx[454]) * xx[80];
11710 pm_math_cross3(xx + 492, xx + 84, xx + 452);
11711 pm_math_quatXform(xx + 485, xx + 452, xx + 492);
11712 xx[452] = xx[471] * xx[33];
11713 xx[453] = xx[472] * xx[33];
11714 xx[454] = xx[471] * xx[23] + xx[31] * xx[472];
11715 xx[485] = xx[452];
11716 xx[486] = xx[453];
11717 xx[487] = - xx[454];
11718 pm_math_cross3(xx + 68, xx + 485, xx + 501);
11719 xx[485] = xx[80] * (xx[501] + xx[452] * xx[27]) + xx[34] - xx[472] - xx[119];
11720 xx[486] = xx[471] + xx[80] * (xx[502] + xx[453] * xx[27]) + xx[16] + xx[117];
11721 xx[487] = (xx[503] - xx[27] * xx[454]) * xx[80] + xx[30];
11722 pm_math_quatXform(xx + 149, xx + 485, xx + 452);
11723 pm_math_quatCompose(xx + 157, xx + 448, xx + 485);
11724 xx[455] = xx[450] * xx[450];
11725 xx[471] = xx[451] * xx[451];
11726 xx[472] = xx[449] * xx[450];
11727 xx[473] = xx[448] * xx[451];
11728 xx[501] = xx[448] * xx[450];
11729 xx[502] = xx[449] * xx[451];
11730 xx[503] = xx[22] - (xx[455] + xx[471]) * xx[80];
11731 xx[504] = xx[80] * (xx[472] - xx[473]);
11732 xx[505] = (xx[501] + xx[502]) * xx[80];
11733 pm_math_cross3(xx + 503, xx + 84, xx + 506);
11734 pm_math_quatXform(xx + 485, xx + 506, xx + 503);
11735 xx[506] = xx[46] * xx[463];
11736 xx[507] = xx[48] * xx[470];
11737 xx[508] = xx[506] + xx[507];
11738 xx[509] = xx[463] * xx[39];
11739 xx[510] = xx[470] * xx[39];
11740 xx[511] = - xx[508];
11741 xx[512] = - xx[509];
11742 xx[513] = - xx[510];
11743 pm_math_cross3(xx + 198, xx + 511, xx + 514);
11744 xx[511] = xx[80] * (xx[514] - xx[508] * xx[43]) + xx[207];
11745 xx[512] = xx[80] * (xx[515] - xx[509] * xx[43]) + xx[201] - xx[470] - xx[74];
11746 xx[513] = xx[463] + xx[80] * (xx[516] - xx[510] * xx[43]) + xx[202] - xx[73];
11747 pm_math_quatXform(xx + 153, xx + 511, xx + 508);
11748 xx[511] = xx[449] * xx[449];
11749 xx[512] = xx[450] * xx[451];
11750 xx[450] = xx[448] * xx[449];
11751 xx[513] = (xx[473] + xx[472]) * xx[80];
11752 xx[514] = xx[22] - (xx[471] + xx[511]) * xx[80];
11753 xx[515] = xx[80] * (xx[512] - xx[450]);
11754 pm_math_cross3(xx + 513, xx + 84, xx + 471);
11755 pm_math_quatXform(xx + 485, xx + 471, xx + 513);
11756 xx[448] = xx[46] * xx[461];
11757 xx[449] = xx[461] * xx[39];
11758 xx[451] = xx[449] - xx[507];
11759 xx[471] = xx[46] * xx[470];
11760 xx[516] = xx[448];
11761 xx[517] = xx[451];
11762 xx[518] = xx[471];
11763 pm_math_cross3(xx + 198, xx + 516, xx + 519);
11764 xx[516] = xx[470] + (xx[448] * xx[43] + xx[519]) * xx[80] + xx[166] + xx[74];
11765 xx[517] = (xx[43] * xx[451] + xx[520]) * xx[80] + xx[58];
11766 xx[518] = (xx[471] * xx[43] + xx[521]) * xx[80] + xx[61] - xx[461] - xx[72];
11767 pm_math_quatXform(xx + 153, xx + 516, xx + 470);
11768 xx[516] = xx[80] * (xx[502] - xx[501]);
11769 xx[517] = (xx[450] + xx[512]) * xx[80];
11770 xx[518] = xx[22] - (xx[511] + xx[455]) * xx[80];
11771 pm_math_cross3(xx + 516, xx + 84, xx + 519);
11772 pm_math_quatXform(xx + 485, xx + 519, xx + 516);
11773 xx[448] = xx[48] * xx[461];
11774 xx[450] = xx[48] * xx[463];
11775 xx[451] = xx[449] - xx[506];
11776 xx[485] = xx[448];
11777 xx[486] = xx[450];
11778 xx[487] = xx[451];
11779 pm_math_cross3(xx + 198, xx + 485, xx + 519);
11780 xx[485] = (xx[448] * xx[43] + xx[519]) * xx[80] + xx[59] - xx[463] + xx[73];
11781 xx[486] = xx[461] + (xx[450] * xx[43] + xx[520]) * xx[80] + xx[11] + xx[72];
11782 xx[487] = (xx[43] * xx[451] + xx[521]) * xx[80] + xx[47];
11783 pm_math_quatXform(xx + 153, xx + 485, xx + 448);
11784 pm_math_quatCompose(xx + 191, xx + 444, xx + 485);
11785 xx[444] = xx[323];
11786 xx[445] = xx[369];
11787 xx[446] = xx[399];
11788 xx[369] = xx[400] * xx[63];
11789 xx[447] = xx[63] * xx[323] - xx[57] * xx[399];
11790 xx[451] = xx[400] * xx[57];
11791 xx[519] = xx[369];
11792 xx[520] = xx[447];
11793 xx[521] = - xx[451];
11794 pm_math_cross3(xx + 444, xx + 519, xx + 522);
11795 xx[519] = xx[80] * (xx[522] + xx[378] * xx[369]) - xx[57];
11796 xx[520] = xx[80] * (xx[523] + xx[378] * xx[447]);
11797 xx[521] = (xx[524] - xx[378] * xx[451]) * xx[80] - xx[63];
11798 pm_math_cross3(xx + 519, xx + 84, xx + 522);
11799 pm_math_quatXform(xx + 485, xx + 522, xx + 519);
11800 xx[522] = - (xx[63] * xx[460]);
11801 xx[523] = xx[63] * xx[405] + xx[57] * xx[459];
11802 xx[524] = xx[57] * xx[460];
11803 pm_math_quatXform(xx + 75, xx + 522, xx + 459);
11804 xx[522] = xx[459] + xx[93];
11805 xx[523] = xx[460] + xx[110] - xx[67];
11806 xx[524] = xx[461] - xx[111];
11807 pm_math_quatXform(xx + 157, xx + 522, xx + 459);
11808 xx[369] = xx[72] * xx[488];
11809 xx[405] = xx[72] * xx[486] - xx[73] * xx[487];
11810 xx[522] = - xx[369];
11811 xx[523] = xx[73] * xx[488];
11812 xx[524] = xx[405];
11813 pm_math_cross3(xx + 486, xx + 522, xx + 525);
11814 xx[447] = xx[327] * xx[399];
11815 xx[451] = xx[401] * xx[399];
11816 xx[399] = xx[327] * xx[323] + xx[400] * xx[401];
11817 xx[522] = - xx[447];
11818 xx[523] = xx[451];
11819 xx[524] = xx[399];
11820 pm_math_cross3(xx + 444, xx + 522, xx + 528);
11821 xx[444] = xx[401] + xx[80] * (xx[528] + xx[378] * xx[447]);
11822 xx[445] = xx[327] + (xx[529] - xx[378] * xx[451]) * xx[80];
11823 xx[446] = (xx[530] - xx[378] * xx[399]) * xx[80];
11824 pm_math_quatXform(xx + 191, xx + 444, xx + 522);
11825 xx[323] = xx[2] * state[77];
11826 xx[378] = cos(xx[323]);
11827 xx[399] = 0.6324445710612965;
11828 xx[400] = xx[2] * state[75];
11829 xx[444] = cos(xx[400]);
11830 xx[445] = 0.6324396579890005;
11831 xx[446] = sin(xx[400]);
11832 xx[400] = xx[399] * xx[444] + xx[445] * xx[446];
11833 xx[447] = xx[378] * xx[400];
11834 xx[451] = xx[399] * xx[446] - xx[445] * xx[444];
11835 xx[455] = sin(xx[323]);
11836 xx[323] = xx[451] * xx[455];
11837 xx[463] = 0.3162553791961485;
11838 xx[473] = 0.3162538200043588;
11839 xx[501] = xx[463] * xx[444] - xx[473] * xx[446];
11840 xx[502] = xx[473] * xx[444] + xx[463] * xx[446];
11841 xx[444] = - (xx[501] * xx[378] - xx[455] * xx[502]);
11842 xx[446] = xx[501] * xx[455] + xx[378] * xx[502];
11843 xx[506] = xx[455] * xx[400] + xx[451] * xx[378];
11844 xx[528] = xx[447] - xx[323];
11845 xx[529] = xx[444];
11846 xx[530] = xx[446];
11847 xx[531] = xx[506];
11848 xx[507] = xx[22] / sqrt(state[79] * state[79] + state[80] * state[80] + state
11849 [81] * state[81] + state[82] * state[82]);
11850 xx[511] = xx[507] * state[82];
11851 xx[512] = xx[507] * state[79];
11852 xx[532] = xx[21] * xx[511] - xx[25] * xx[512];
11853 xx[533] = xx[507] * state[81];
11854 xx[534] = xx[507] * state[80];
11855 xx[507] = xx[21] * xx[533] + xx[25] * xx[534];
11856 xx[535] = - xx[507];
11857 xx[536] = xx[25] * xx[533] - xx[21] * xx[534];
11858 xx[537] = - xx[536];
11859 xx[538] = xx[21] * xx[512] + xx[25] * xx[511];
11860 xx[539] = - xx[538];
11861 xx[540] = xx[532];
11862 xx[541] = xx[535];
11863 xx[542] = xx[537];
11864 xx[543] = xx[539];
11865 pm_math_quatCompose(xx + 528, xx + 540, xx + 544);
11866 xx[528] = (xx[536] * xx[532] + xx[538] * xx[507]) * xx[80];
11867 xx[529] = xx[80] * (xx[536] * xx[538] - xx[507] * xx[532]);
11868 xx[530] = xx[22] - (xx[507] * xx[507] + xx[536] * xx[536]) * xx[80];
11869 pm_math_cross3(xx + 528, xx + 267, xx + 548);
11870 pm_math_quatXform(xx + 544, xx + 548, xx + 528);
11871 pm_math_quatXform(xx + 540, xx + 126, xx + 544);
11872 xx[531] = xx[545] * xx[455] - xx[378] * xx[544];
11873 xx[547] = 5.157931604049537e-12;
11874 xx[548] = 9.862118968695376e-13;
11875 xx[549] = xx[547] * xx[378] + xx[548] * xx[455];
11876 xx[550] = xx[80] * xx[455] * xx[531] - (xx[545] - xx[80] * xx[549] * xx[455])
11877 - xx[548];
11878 xx[551] = - xx[502];
11879 xx[552] = xx[400];
11880 xx[553] = xx[451];
11881 xx[554] = xx[551];
11882 xx[555] = xx[544] + xx[80] * xx[378] * xx[531] + xx[80] * xx[549] * xx[378] -
11883 xx[547];
11884 xx[531] = xx[555] * xx[502];
11885 xx[549] = xx[550] * xx[502];
11886 xx[556] = xx[555] * xx[400] - xx[451] * xx[550];
11887 xx[557] = xx[531];
11888 xx[558] = - xx[549];
11889 xx[559] = xx[556];
11890 pm_math_cross3(xx + 552, xx + 557, xx + 560);
11891 xx[563] = - (xx[323] - xx[447]);
11892 xx[564] = xx[444];
11893 xx[565] = xx[446];
11894 xx[566] = xx[506];
11895 pm_math_quatCompose(xx + 563, xx + 540, xx + 567);
11896 pm_math_quatXform(xx + 567, xx + 280, xx + 557);
11897 pm_math_quatXform(xx + 540, xx + 167, xx + 571);
11898 pm_math_quatXform(xx + 563, xx + 571, xx + 574);
11899 pm_math_quatXform(xx + 567, xx + 297, xx + 571);
11900 pm_math_quatXform(xx + 540, xx + 176, xx + 577);
11901 pm_math_quatXform(xx + 563, xx + 577, xx + 540);
11902 xx[323] = xx[102] * xx[570];
11903 xx[444] = xx[102] * xx[568] + xx[123] * xx[569];
11904 xx[577] = - xx[323];
11905 xx[578] = - (xx[123] * xx[570]);
11906 xx[579] = xx[444];
11907 pm_math_cross3(xx + 568, xx + 577, xx + 580);
11908 xx[577] = xx[535];
11909 xx[578] = xx[537];
11910 xx[579] = xx[539];
11911 xx[446] = xx[117] * xx[538];
11912 xx[447] = xx[119] * xx[538];
11913 xx[506] = xx[117] * xx[507] + xx[536] * xx[119];
11914 xx[535] = xx[446];
11915 xx[536] = xx[447];
11916 xx[537] = - xx[506];
11917 pm_math_cross3(xx + 577, xx + 535, xx + 583);
11918 xx[535] = xx[80] * (xx[583] + xx[446] * xx[532]) - xx[119];
11919 xx[536] = xx[117] + (xx[447] * xx[532] + xx[584]) * xx[80];
11920 xx[537] = (xx[585] - xx[506] * xx[532]) * xx[80];
11921 pm_math_quatXform(xx + 563, xx + 535, xx + 577);
11922 xx[446] = xx[2] * state[49];
11923 xx[447] = cos(xx[446]);
11924 xx[506] = xx[312] * xx[447];
11925 xx[507] = sin(xx[446]);
11926 xx[446] = xx[312] * xx[507];
11927 xx[532] = xx[506] + xx[446];
11928 xx[535] = xx[379] * xx[447];
11929 xx[447] = xx[379] * xx[507];
11930 xx[507] = xx[535] - xx[447];
11931 xx[536] = xx[535] + xx[447];
11932 xx[447] = xx[506] - xx[446];
11933 xx[583] = xx[532];
11934 xx[584] = xx[507];
11935 xx[585] = xx[536];
11936 xx[586] = xx[447];
11937 pm_math_quatCompose(xx + 75, xx + 583, xx + 587);
11938 pm_math_quatCompose(xx + 50, xx + 587, xx + 591);
11939 pm_math_quatCompose(xx + 35, xx + 591, xx + 595);
11940 pm_math_quatCompose(xx + 17, xx + 595, xx + 599);
11941 xx[537] = xx[80] * (xx[596] * xx[598] - xx[595] * xx[597]);
11942 xx[538] = (xx[595] * xx[596] + xx[597] * xx[598]) * xx[80];
11943 xx[539] = xx[22] - (xx[596] * xx[596] + xx[597] * xx[597]) * xx[80];
11944 pm_math_cross3(xx + 537, xx + 84, xx + 595);
11945 pm_math_quatXform(xx + 599, xx + 595, xx + 537);
11946 xx[446] = 0.1158410329922713;
11947 xx[506] = 5.998698970888227e-12;
11948 xx[535] = 6.30935626036444e-12;
11949 xx[595] = - xx[506];
11950 xx[596] = - xx[535];
11951 xx[597] = 4.000000001735564e-3;
11952 pm_math_quatXform(xx + 583, xx + 595, xx + 598);
11953 xx[543] = xx[446] + xx[598];
11954 xx[601] = 0.09621024525612379;
11955 xx[598] = xx[601] - xx[600];
11956 xx[602] = - xx[543];
11957 xx[603] = - xx[599];
11958 xx[604] = xx[598];
11959 pm_math_quatXform(xx + 75, xx + 602, xx + 605);
11960 xx[600] = xx[605] - xx[107];
11961 xx[608] = xx[606] + xx[109];
11962 xx[605] = xx[607] - xx[101];
11963 xx[609] = xx[600];
11964 xx[610] = xx[608];
11965 xx[611] = xx[605];
11966 pm_math_quatXform(xx + 50, xx + 609, xx + 612);
11967 xx[606] = xx[612] + xx[121];
11968 xx[607] = xx[613] + xx[124];
11969 xx[609] = xx[614] + xx[116];
11970 xx[610] = xx[606];
11971 xx[611] = xx[607];
11972 xx[612] = xx[609];
11973 pm_math_quatXform(xx + 35, xx + 610, xx + 613);
11974 xx[610] = xx[614] + xx[133];
11975 xx[611] = xx[613] + xx[132];
11976 xx[612] = xx[610] * xx[10] - xx[611] * xx[8];
11977 xx[613] = xx[80] * xx[10] * xx[612] - (xx[610] - xx[137]) - xx[135];
11978 xx[610] = xx[611] + xx[80] * xx[8] * xx[612] + xx[120] - xx[131];
11979 xx[611] = xx[15] * xx[610];
11980 xx[612] = xx[15] * xx[613];
11981 xx[614] = xx[3] * xx[610] - xx[613] * xx[7];
11982 xx[615] = - xx[611];
11983 xx[616] = xx[612];
11984 xx[617] = xx[614];
11985 pm_math_cross3(xx + 139, xx + 615, xx + 618);
11986 pm_math_quatCompose(xx + 153, xx + 591, xx + 621);
11987 xx[615] = xx[4] * xx[594];
11988 xx[616] = xx[4] * xx[592] + xx[593];
11989 xx[625] = xx[615];
11990 xx[626] = xx[594];
11991 xx[627] = - xx[616];
11992 pm_math_cross3(xx + 592, xx + 625, xx + 628);
11993 xx[617] = xx[591] * xx[594];
11994 xx[625] = xx[22] + (xx[628] - xx[591] * xx[615]) * xx[80];
11995 xx[626] = xx[80] * (xx[629] - xx[617]) - xx[4];
11996 xx[627] = xx[80] * (xx[630] + xx[591] * xx[616]);
11997 pm_math_cross3(xx + 625, xx + 84, xx + 628);
11998 pm_math_quatXform(xx + 621, xx + 628, xx + 625);
11999 xx[616] = - (xx[609] * xx[4]);
12000 xx[628] = xx[616];
12001 xx[629] = - xx[609];
12002 xx[630] = xx[607] + xx[606] * xx[4];
12003 pm_math_quatXform(xx + 35, xx + 628, xx + 631);
12004 xx[628] = xx[631] + xx[170];
12005 xx[629] = xx[632] + xx[171];
12006 xx[630] = xx[633] + xx[172];
12007 pm_math_quatXform(xx + 149, xx + 628, xx + 631);
12008 xx[628] = xx[592] - xx[4] * xx[593];
12009 xx[634] = - xx[594];
12010 xx[635] = xx[615];
12011 xx[636] = xx[628];
12012 pm_math_cross3(xx + 592, xx + 634, xx + 637);
12013 xx[634] = xx[4] + (xx[617] + xx[637]) * xx[80];
12014 xx[635] = xx[22] + xx[80] * (xx[638] - xx[4] * xx[617]);
12015 xx[636] = xx[80] * (xx[639] - xx[591] * xx[628]);
12016 pm_math_cross3(xx + 634, xx + 84, xx + 628);
12017 pm_math_quatXform(xx + 621, xx + 628, xx + 634);
12018 xx[628] = xx[609];
12019 xx[629] = xx[616];
12020 xx[630] = xx[607] * xx[4] - xx[606];
12021 pm_math_quatXform(xx + 35, xx + 628, xx + 615);
12022 xx[628] = xx[615] + xx[182];
12023 xx[629] = xx[616] + xx[183];
12024 xx[630] = xx[617] + xx[184];
12025 pm_math_quatXform(xx + 149, xx + 628, xx + 615);
12026 xx[628] = xx[80] * (xx[592] * xx[594] - xx[591] * xx[593]);
12027 xx[629] = (xx[591] * xx[592] + xx[593] * xx[594]) * xx[80];
12028 xx[630] = xx[22] - (xx[592] * xx[592] + xx[593] * xx[593]) * xx[80];
12029 pm_math_cross3(xx + 628, xx + 84, xx + 591);
12030 pm_math_quatXform(xx + 621, xx + 591, xx + 628);
12031 xx[591] = xx[606] * xx[33];
12032 xx[592] = xx[607] * xx[33];
12033 xx[593] = xx[606] * xx[23] + xx[31] * xx[607];
12034 xx[621] = xx[591];
12035 xx[622] = xx[592];
12036 xx[623] = - xx[593];
12037 pm_math_cross3(xx + 68, xx + 621, xx + 637);
12038 xx[621] = xx[80] * (xx[637] + xx[591] * xx[27]) + xx[34] - xx[607] - xx[119];
12039 xx[622] = xx[606] + xx[80] * (xx[638] + xx[592] * xx[27]) + xx[16] + xx[117];
12040 xx[623] = (xx[639] - xx[27] * xx[593]) * xx[80] + xx[30];
12041 pm_math_quatXform(xx + 149, xx + 621, xx + 591);
12042 pm_math_quatCompose(xx + 157, xx + 587, xx + 621);
12043 xx[594] = xx[589] * xx[589];
12044 xx[606] = xx[590] * xx[590];
12045 xx[607] = xx[588] * xx[589];
12046 xx[609] = xx[587] * xx[590];
12047 xx[637] = xx[587] * xx[589];
12048 xx[638] = xx[588] * xx[590];
12049 xx[639] = xx[22] - (xx[594] + xx[606]) * xx[80];
12050 xx[640] = xx[80] * (xx[607] - xx[609]);
12051 xx[641] = (xx[637] + xx[638]) * xx[80];
12052 pm_math_cross3(xx + 639, xx + 84, xx + 642);
12053 pm_math_quatXform(xx + 621, xx + 642, xx + 639);
12054 xx[642] = xx[46] * xx[608];
12055 xx[643] = xx[48] * xx[605];
12056 xx[644] = xx[642] + xx[643];
12057 xx[645] = xx[608] * xx[39];
12058 xx[646] = xx[605] * xx[39];
12059 xx[647] = - xx[644];
12060 xx[648] = - xx[645];
12061 xx[649] = - xx[646];
12062 pm_math_cross3(xx + 198, xx + 647, xx + 650);
12063 xx[647] = xx[80] * (xx[650] - xx[644] * xx[43]) + xx[207];
12064 xx[648] = xx[80] * (xx[651] - xx[645] * xx[43]) + xx[201] - xx[605] - xx[74];
12065 xx[649] = xx[608] + xx[80] * (xx[652] - xx[646] * xx[43]) + xx[202] - xx[73];
12066 pm_math_quatXform(xx + 153, xx + 647, xx + 644);
12067 xx[647] = xx[588] * xx[588];
12068 xx[648] = xx[589] * xx[590];
12069 xx[589] = xx[587] * xx[588];
12070 xx[649] = (xx[609] + xx[607]) * xx[80];
12071 xx[650] = xx[22] - (xx[606] + xx[647]) * xx[80];
12072 xx[651] = xx[80] * (xx[648] - xx[589]);
12073 pm_math_cross3(xx + 649, xx + 84, xx + 652);
12074 pm_math_quatXform(xx + 621, xx + 652, xx + 649);
12075 xx[587] = xx[46] * xx[600];
12076 xx[588] = xx[600] * xx[39];
12077 xx[590] = xx[588] - xx[643];
12078 xx[606] = xx[46] * xx[605];
12079 xx[652] = xx[587];
12080 xx[653] = xx[590];
12081 xx[654] = xx[606];
12082 pm_math_cross3(xx + 198, xx + 652, xx + 655);
12083 xx[652] = xx[605] + (xx[587] * xx[43] + xx[655]) * xx[80] + xx[166] + xx[74];
12084 xx[653] = (xx[43] * xx[590] + xx[656]) * xx[80] + xx[58];
12085 xx[654] = (xx[606] * xx[43] + xx[657]) * xx[80] + xx[61] - xx[600] - xx[72];
12086 pm_math_quatXform(xx + 153, xx + 652, xx + 605);
12087 xx[652] = xx[80] * (xx[638] - xx[637]);
12088 xx[653] = (xx[589] + xx[648]) * xx[80];
12089 xx[654] = xx[22] - (xx[647] + xx[594]) * xx[80];
12090 pm_math_cross3(xx + 652, xx + 84, xx + 655);
12091 pm_math_quatXform(xx + 621, xx + 655, xx + 652);
12092 xx[587] = xx[48] * xx[600];
12093 xx[589] = xx[48] * xx[608];
12094 xx[590] = xx[588] - xx[642];
12095 xx[621] = xx[587];
12096 xx[622] = xx[589];
12097 xx[623] = xx[590];
12098 pm_math_cross3(xx + 198, xx + 621, xx + 655);
12099 xx[621] = (xx[587] * xx[43] + xx[655]) * xx[80] + xx[59] - xx[608] + xx[73];
12100 xx[622] = xx[600] + (xx[589] * xx[43] + xx[656]) * xx[80] + xx[11] + xx[72];
12101 xx[623] = (xx[43] * xx[590] + xx[657]) * xx[80] + xx[47];
12102 pm_math_quatXform(xx + 153, xx + 621, xx + 587);
12103 pm_math_quatCompose(xx + 191, xx + 583, xx + 621);
12104 xx[583] = xx[507];
12105 xx[584] = xx[536];
12106 xx[585] = xx[447];
12107 xx[586] = xx[536] * xx[63];
12108 xx[590] = xx[63] * xx[507] - xx[57] * xx[447];
12109 xx[594] = xx[536] * xx[57];
12110 xx[655] = - xx[586];
12111 xx[656] = xx[590];
12112 xx[657] = xx[594];
12113 pm_math_cross3(xx + 583, xx + 655, xx + 658);
12114 xx[655] = xx[80] * (xx[658] + xx[532] * xx[586]) - xx[57];
12115 xx[656] = xx[80] * (xx[659] - xx[532] * xx[590]);
12116 xx[657] = (xx[660] - xx[532] * xx[594]) * xx[80] - xx[63];
12117 pm_math_cross3(xx + 655, xx + 84, xx + 658);
12118 pm_math_quatXform(xx + 621, xx + 658, xx + 655);
12119 xx[658] = - (xx[63] * xx[599]);
12120 xx[659] = xx[63] * xx[543] + xx[57] * xx[598];
12121 xx[660] = xx[57] * xx[599];
12122 pm_math_quatXform(xx + 75, xx + 658, xx + 598);
12123 xx[658] = xx[598] + xx[93];
12124 xx[659] = xx[599] + xx[110] - xx[67];
12125 xx[660] = xx[600] - xx[111];
12126 pm_math_quatXform(xx + 157, xx + 658, xx + 598);
12127 xx[543] = xx[72] * xx[624];
12128 xx[586] = xx[72] * xx[622] - xx[73] * xx[623];
12129 xx[658] = - xx[543];
12130 xx[659] = xx[73] * xx[624];
12131 xx[660] = xx[586];
12132 pm_math_cross3(xx + 622, xx + 658, xx + 661);
12133 xx[590] = xx[506] * xx[447];
12134 xx[594] = xx[535] * xx[447];
12135 xx[447] = xx[506] * xx[507] + xx[536] * xx[535];
12136 xx[658] = xx[590];
12137 xx[659] = xx[594];
12138 xx[660] = - xx[447];
12139 pm_math_cross3(xx + 583, xx + 658, xx + 664);
12140 xx[583] = xx[535] + xx[80] * (xx[664] + xx[532] * xx[590]);
12141 xx[584] = (xx[532] * xx[594] + xx[665]) * xx[80] - xx[506];
12142 xx[585] = (xx[666] - xx[532] * xx[447]) * xx[80];
12143 pm_math_quatXform(xx + 191, xx + 583, xx + 658);
12144 xx[447] = xx[2] * state[88];
12145 xx[507] = cos(xx[447]);
12146 xx[532] = 0.6324445710612973;
12147 xx[536] = xx[2] * state[86];
12148 xx[583] = cos(xx[536]);
12149 xx[584] = 0.6324396579890008;
12150 xx[585] = sin(xx[536]);
12151 xx[536] = xx[532] * xx[583] + xx[584] * xx[585];
12152 xx[590] = xx[507] * xx[536];
12153 xx[594] = xx[584] * xx[583] - xx[532] * xx[585];
12154 xx[608] = sin(xx[447]);
12155 xx[447] = xx[594] * xx[608];
12156 xx[609] = 0.3162538200043575;
12157 xx[637] = 0.3162553791961478;
12158 xx[638] = xx[609] * xx[585] - xx[637] * xx[583];
12159 xx[642] = xx[609] * xx[583] + xx[637] * xx[585];
12160 xx[583] = - (xx[638] * xx[507] + xx[608] * xx[642]);
12161 xx[585] = xx[638] * xx[608] - xx[507] * xx[642];
12162 xx[643] = xx[594] * xx[507] - xx[608] * xx[536];
12163 xx[664] = - (xx[590] + xx[447]);
12164 xx[665] = xx[583];
12165 xx[666] = xx[585];
12166 xx[667] = xx[643];
12167 xx[647] = xx[22] / sqrt(state[90] * state[90] + state[91] * state[91] + state
12168 [92] * state[92] + state[93] * state[93]);
12169 xx[648] = xx[647] * state[93];
12170 xx[668] = xx[647] * state[90];
12171 xx[669] = xx[21] * xx[648] - xx[25] * xx[668];
12172 xx[670] = xx[647] * state[92];
12173 xx[671] = xx[647] * state[91];
12174 xx[647] = xx[21] * xx[670] + xx[25] * xx[671];
12175 xx[672] = - xx[647];
12176 xx[673] = xx[25] * xx[670] - xx[21] * xx[671];
12177 xx[674] = - xx[673];
12178 xx[675] = xx[21] * xx[668] + xx[25] * xx[648];
12179 xx[676] = - xx[675];
12180 xx[677] = xx[669];
12181 xx[678] = xx[672];
12182 xx[679] = xx[674];
12183 xx[680] = xx[676];
12184 pm_math_quatCompose(xx + 664, xx + 677, xx + 681);
12185 xx[664] = (xx[673] * xx[669] + xx[647] * xx[675]) * xx[80];
12186 xx[665] = xx[80] * (xx[673] * xx[675] - xx[669] * xx[647]);
12187 xx[666] = xx[22] - (xx[647] * xx[647] + xx[673] * xx[673]) * xx[80];
12188 pm_math_cross3(xx + 664, xx + 267, xx + 685);
12189 pm_math_quatXform(xx + 681, xx + 685, xx + 664);
12190 pm_math_quatXform(xx + 677, xx + 126, xx + 681);
12191 xx[667] = xx[682] * xx[608] - xx[507] * xx[681];
12192 xx[684] = 1.600627075326599e-13;
12193 xx[685] = 8.497959654019115e-12;
12194 xx[686] = xx[684] * xx[507] + xx[685] * xx[608];
12195 xx[687] = xx[80] * xx[608] * xx[667] - (xx[682] - xx[80] * xx[686] * xx[608])
12196 - xx[685];
12197 xx[688] = - xx[536];
12198 xx[689] = xx[688];
12199 xx[690] = xx[594];
12200 xx[691] = xx[642];
12201 xx[692] = xx[681] + xx[80] * xx[507] * xx[667] + xx[80] * xx[686] * xx[507] -
12202 xx[684];
12203 xx[667] = xx[692] * xx[642];
12204 xx[686] = xx[687] * xx[642];
12205 xx[693] = xx[692] * xx[536] + xx[594] * xx[687];
12206 xx[694] = - xx[667];
12207 xx[695] = xx[686];
12208 xx[696] = - xx[693];
12209 pm_math_cross3(xx + 689, xx + 694, xx + 697);
12210 xx[700] = - (xx[447] + xx[590]);
12211 xx[701] = xx[583];
12212 xx[702] = xx[585];
12213 xx[703] = xx[643];
12214 pm_math_quatCompose(xx + 700, xx + 677, xx + 704);
12215 pm_math_quatXform(xx + 704, xx + 280, xx + 694);
12216 pm_math_quatXform(xx + 677, xx + 167, xx + 708);
12217 pm_math_quatXform(xx + 700, xx + 708, xx + 711);
12218 pm_math_quatXform(xx + 704, xx + 297, xx + 708);
12219 pm_math_quatXform(xx + 677, xx + 176, xx + 714);
12220 pm_math_quatXform(xx + 700, xx + 714, xx + 677);
12221 xx[447] = xx[102] * xx[707];
12222 xx[583] = xx[102] * xx[705] + xx[123] * xx[706];
12223 xx[714] = - xx[447];
12224 xx[715] = - (xx[123] * xx[707]);
12225 xx[716] = xx[583];
12226 pm_math_cross3(xx + 705, xx + 714, xx + 717);
12227 xx[714] = xx[672];
12228 xx[715] = xx[674];
12229 xx[716] = xx[676];
12230 xx[585] = xx[117] * xx[675];
12231 xx[590] = xx[119] * xx[675];
12232 xx[643] = xx[117] * xx[647] + xx[673] * xx[119];
12233 xx[672] = xx[585];
12234 xx[673] = xx[590];
12235 xx[674] = - xx[643];
12236 pm_math_cross3(xx + 714, xx + 672, xx + 720);
12237 xx[672] = xx[80] * (xx[720] + xx[585] * xx[669]) - xx[119];
12238 xx[673] = xx[117] + (xx[590] * xx[669] + xx[721]) * xx[80];
12239 xx[674] = (xx[722] - xx[643] * xx[669]) * xx[80];
12240 pm_math_quatXform(xx + 700, xx + 672, xx + 714);
12241 xx[585] = xx[2] * state[14];
12242 xx[590] = cos(xx[585]);
12243 xx[643] = 0.5901074779979933;
12244 xx[647] = xx[2] * state[12];
12245 xx[669] = cos(xx[647]);
12246 xx[672] = 0.5901036711621462;
12247 xx[673] = sin(xx[647]);
12248 xx[647] = xx[643] * xx[669] + xx[672] * xx[673];
12249 xx[674] = xx[590] * xx[647];
12250 xx[675] = xx[672] * xx[669] - xx[643] * xx[673];
12251 xx[676] = sin(xx[585]);
12252 xx[585] = xx[675] * xx[676];
12253 xx[680] = 0.3895853754265615;
12254 xx[720] = 0.389581900177037;
12255 xx[721] = xx[680] * xx[669] - xx[720] * xx[673];
12256 xx[722] = xx[720] * xx[669] + xx[680] * xx[673];
12257 xx[669] = - (xx[721] * xx[590] - xx[676] * xx[722]);
12258 xx[673] = xx[721] * xx[676] + xx[590] * xx[722];
12259 xx[723] = xx[675] * xx[590] - xx[676] * xx[647];
12260 xx[724] = - (xx[674] + xx[585]);
12261 xx[725] = xx[669];
12262 xx[726] = xx[673];
12263 xx[727] = xx[723];
12264 xx[728] = xx[22] / sqrt(state[16] * state[16] + state[17] * state[17] + state
12265 [18] * state[18] + state[19] * state[19]);
12266 xx[729] = xx[728] * state[19];
12267 xx[730] = xx[728] * state[16];
12268 xx[731] = xx[21] * xx[729] - xx[25] * xx[730];
12269 xx[732] = xx[728] * state[18];
12270 xx[733] = xx[728] * state[17];
12271 xx[728] = xx[21] * xx[732] + xx[25] * xx[733];
12272 xx[734] = - xx[728];
12273 xx[735] = xx[25] * xx[732] - xx[21] * xx[733];
12274 xx[736] = - xx[735];
12275 xx[737] = xx[21] * xx[730] + xx[25] * xx[729];
12276 xx[738] = - xx[737];
12277 xx[739] = xx[731];
12278 xx[740] = xx[734];
12279 xx[741] = xx[736];
12280 xx[742] = xx[738];
12281 pm_math_quatCompose(xx + 724, xx + 739, xx + 743);
12282 xx[724] = (xx[735] * xx[731] + xx[737] * xx[728]) * xx[80];
12283 xx[725] = xx[80] * (xx[735] * xx[737] - xx[731] * xx[728]);
12284 xx[726] = xx[22] - (xx[728] * xx[728] + xx[735] * xx[735]) * xx[80];
12285 pm_math_cross3(xx + 724, xx + 267, xx + 747);
12286 pm_math_quatXform(xx + 743, xx + 747, xx + 724);
12287 pm_math_quatXform(xx + 739, xx + 126, xx + 743);
12288 xx[727] = xx[744] * xx[676] - xx[590] * xx[743];
12289 xx[746] = 7.748428954013064e-12;
12290 xx[747] = 5.376764528053357e-12;
12291 xx[748] = xx[746] * xx[590] - xx[747] * xx[676];
12292 xx[749] = xx[80] * xx[676] * xx[727] - (xx[744] + xx[80] * xx[748] * xx[676])
12293 - xx[747];
12294 xx[750] = - xx[647];
12295 xx[751] = - xx[722];
12296 xx[752] = xx[750];
12297 xx[753] = xx[675];
12298 xx[754] = xx[751];
12299 xx[755] = xx[743] + xx[80] * xx[590] * xx[727] - xx[80] * xx[748] * xx[590] +
12300 xx[746];
12301 xx[727] = xx[755] * xx[722];
12302 xx[748] = xx[749] * xx[722];
12303 xx[756] = xx[755] * xx[647] + xx[675] * xx[749];
12304 xx[757] = xx[727];
12305 xx[758] = - xx[748];
12306 xx[759] = - xx[756];
12307 pm_math_cross3(xx + 752, xx + 757, xx + 760);
12308 xx[763] = - (xx[585] + xx[674]);
12309 xx[764] = xx[669];
12310 xx[765] = xx[673];
12311 xx[766] = xx[723];
12312 pm_math_quatCompose(xx + 763, xx + 739, xx + 767);
12313 pm_math_quatXform(xx + 767, xx + 280, xx + 757);
12314 pm_math_quatXform(xx + 739, xx + 167, xx + 771);
12315 pm_math_quatXform(xx + 763, xx + 771, xx + 774);
12316 pm_math_quatXform(xx + 767, xx + 297, xx + 771);
12317 pm_math_quatXform(xx + 739, xx + 176, xx + 777);
12318 pm_math_quatXform(xx + 763, xx + 777, xx + 739);
12319 xx[585] = xx[102] * xx[770];
12320 xx[669] = xx[102] * xx[768] + xx[123] * xx[769];
12321 xx[777] = - xx[585];
12322 xx[778] = - (xx[123] * xx[770]);
12323 xx[779] = xx[669];
12324 pm_math_cross3(xx + 768, xx + 777, xx + 780);
12325 xx[777] = xx[734];
12326 xx[778] = xx[736];
12327 xx[779] = xx[738];
12328 xx[673] = xx[117] * xx[737];
12329 xx[674] = xx[119] * xx[737];
12330 xx[723] = xx[117] * xx[728] + xx[735] * xx[119];
12331 xx[734] = xx[673];
12332 xx[735] = xx[674];
12333 xx[736] = - xx[723];
12334 pm_math_cross3(xx + 777, xx + 734, xx + 783);
12335 xx[734] = xx[80] * (xx[783] + xx[673] * xx[731]) - xx[119];
12336 xx[735] = xx[117] + (xx[674] * xx[731] + xx[784]) * xx[80];
12337 xx[736] = (xx[785] - xx[723] * xx[731]) * xx[80];
12338 pm_math_quatXform(xx + 763, xx + 734, xx + 777);
12339 xx[673] = xx[2] * state[51];
12340 xx[674] = cos(xx[673]);
12341 xx[723] = sin(xx[673]);
12342 xx[673] = xx[674] * xx[66] + xx[723] * xx[54];
12343 xx[728] = xx[64] * xx[674] - xx[723] * xx[65];
12344 xx[731] = xx[674] * xx[65] + xx[64] * xx[723];
12345 xx[64] = xx[674] * xx[54] - xx[723] * xx[66];
12346 xx[734] = xx[673];
12347 xx[735] = xx[728];
12348 xx[736] = xx[731];
12349 xx[737] = xx[64];
12350 pm_math_quatCompose(xx + 50, xx + 734, xx + 783);
12351 pm_math_quatCompose(xx + 35, xx + 783, xx + 787);
12352 pm_math_quatCompose(xx + 17, xx + 787, xx + 791);
12353 xx[17] = xx[80] * (xx[788] * xx[790] - xx[787] * xx[789]);
12354 xx[18] = (xx[787] * xx[788] + xx[789] * xx[790]) * xx[80];
12355 xx[19] = xx[22] - (xx[788] * xx[788] + xx[789] * xx[789]) * xx[80];
12356 pm_math_cross3(xx + 17, xx + 84, xx + 787);
12357 pm_math_quatXform(xx + 791, xx + 787, xx + 17);
12358 xx[20] = 0.02540000000000185;
12359 xx[54] = 6.817225262079063e-12;
12360 xx[65] = xx[54] * xx[723];
12361 xx[66] = xx[65] * xx[723];
12362 xx[738] = 5.61723311615081e-12;
12363 xx[742] = xx[738] * xx[723];
12364 xx[787] = xx[674] * xx[742];
12365 xx[788] = xx[20] - (xx[80] * (xx[66] - xx[787]) - xx[54]);
12366 xx[789] = xx[674] * xx[65];
12367 xx[65] = xx[742] * xx[723];
12368 xx[742] = (xx[789] + xx[65]) * xx[80] - xx[738];
12369 xx[790] = 0.152426400001803;
12370 xx[791] = - xx[790];
12371 xx[792] = xx[788];
12372 xx[793] = - xx[742];
12373 xx[794] = xx[791];
12374 pm_math_quatXform(xx + 75, xx + 792, xx + 795);
12375 xx[798] = xx[795] - xx[107];
12376 xx[799] = xx[796] + xx[109];
12377 xx[795] = xx[797] - xx[101];
12378 xx[800] = xx[798];
12379 xx[801] = xx[799];
12380 xx[802] = xx[795];
12381 pm_math_quatXform(xx + 50, xx + 800, xx + 803);
12382 xx[50] = xx[803] + xx[121];
12383 xx[51] = xx[804] + xx[124];
12384 xx[52] = xx[805] + xx[116];
12385 pm_math_quatXform(xx + 35, xx + 50, xx + 800);
12386 xx[53] = xx[801] + xx[133];
12387 xx[796] = xx[800] + xx[132];
12388 xx[797] = xx[53] * xx[10] - xx[796] * xx[8];
12389 xx[800] = xx[80] * xx[10] * xx[797] - (xx[53] - xx[137]) - xx[135];
12390 xx[53] = xx[796] + xx[80] * xx[8] * xx[797] + xx[120] - xx[131];
12391 xx[120] = xx[53] * xx[15];
12392 xx[137] = xx[800] * xx[15];
12393 xx[796] = xx[53] * xx[3] - xx[800] * xx[7];
12394 xx[801] = - xx[120];
12395 xx[802] = xx[137];
12396 xx[803] = xx[796];
12397 pm_math_cross3(xx + 139, xx + 801, xx + 804);
12398 pm_math_quatCompose(xx + 153, xx + 783, xx + 807);
12399 xx[797] = xx[4] * xx[786];
12400 xx[801] = xx[4] * xx[784] + xx[785];
12401 xx[811] = xx[797];
12402 xx[812] = xx[786];
12403 xx[813] = - xx[801];
12404 pm_math_cross3(xx + 784, xx + 811, xx + 814);
12405 xx[802] = xx[783] * xx[786];
12406 xx[811] = xx[22] + (xx[814] - xx[783] * xx[797]) * xx[80];
12407 xx[812] = xx[80] * (xx[815] - xx[802]) - xx[4];
12408 xx[813] = xx[80] * (xx[816] + xx[783] * xx[801]);
12409 pm_math_cross3(xx + 811, xx + 84, xx + 814);
12410 pm_math_quatXform(xx + 807, xx + 814, xx + 811);
12411 xx[801] = - (xx[52] * xx[4]);
12412 xx[814] = xx[801];
12413 xx[815] = - xx[52];
12414 xx[816] = xx[51] + xx[50] * xx[4];
12415 pm_math_quatXform(xx + 35, xx + 814, xx + 817);
12416 xx[814] = xx[817] + xx[170];
12417 xx[815] = xx[818] + xx[171];
12418 xx[816] = xx[819] + xx[172];
12419 pm_math_quatXform(xx + 149, xx + 814, xx + 170);
12420 xx[803] = xx[784] - xx[4] * xx[785];
12421 xx[814] = - xx[786];
12422 xx[815] = xx[797];
12423 xx[816] = xx[803];
12424 pm_math_cross3(xx + 784, xx + 814, xx + 817);
12425 xx[814] = xx[4] + (xx[802] + xx[817]) * xx[80];
12426 xx[815] = xx[22] + xx[80] * (xx[818] - xx[4] * xx[802]);
12427 xx[816] = xx[80] * (xx[819] - xx[783] * xx[803]);
12428 pm_math_cross3(xx + 814, xx + 84, xx + 817);
12429 pm_math_quatXform(xx + 807, xx + 817, xx + 814);
12430 xx[817] = xx[52];
12431 xx[818] = xx[801];
12432 xx[819] = xx[51] * xx[4] - xx[50];
12433 pm_math_quatXform(xx + 35, xx + 817, xx + 801);
12434 xx[35] = xx[801] + xx[182];
12435 xx[36] = xx[802] + xx[183];
12436 xx[37] = xx[803] + xx[184];
12437 pm_math_quatXform(xx + 149, xx + 35, xx + 182);
12438 xx[35] = xx[80] * (xx[784] * xx[786] - xx[783] * xx[785]);
12439 xx[36] = (xx[783] * xx[784] + xx[785] * xx[786]) * xx[80];
12440 xx[37] = xx[22] - (xx[784] * xx[784] + xx[785] * xx[785]) * xx[80];
12441 pm_math_cross3(xx + 35, xx + 84, xx + 783);
12442 pm_math_quatXform(xx + 807, xx + 783, xx + 35);
12443 xx[38] = xx[50] * xx[33];
12444 xx[52] = xx[51] * xx[33];
12445 xx[33] = xx[50] * xx[23] + xx[51] * xx[31];
12446 xx[783] = xx[38];
12447 xx[784] = xx[52];
12448 xx[785] = - xx[33];
12449 pm_math_cross3(xx + 68, xx + 783, xx + 801);
12450 xx[68] = xx[80] * (xx[801] + xx[38] * xx[27]) + xx[34] - xx[51] - xx[119];
12451 xx[69] = xx[50] + xx[80] * (xx[802] + xx[52] * xx[27]) + xx[16] + xx[117];
12452 xx[70] = (xx[803] - xx[33] * xx[27]) * xx[80] + xx[30];
12453 pm_math_quatXform(xx + 149, xx + 68, xx + 50);
12454 pm_math_quatCompose(xx + 157, xx + 734, xx + 783);
12455 xx[16] = xx[731] * xx[731];
12456 xx[23] = xx[64] * xx[64];
12457 xx[27] = xx[731] * xx[728];
12458 xx[30] = xx[673] * xx[64];
12459 xx[31] = xx[731] * xx[673];
12460 xx[33] = xx[728] * xx[64];
12461 xx[68] = xx[22] - (xx[16] + xx[23]) * xx[80];
12462 xx[69] = xx[80] * (xx[27] - xx[30]);
12463 xx[70] = (xx[31] + xx[33]) * xx[80];
12464 pm_math_cross3(xx + 68, xx + 84, xx + 734);
12465 pm_math_quatXform(xx + 783, xx + 734, xx + 68);
12466 xx[34] = xx[799] * xx[46];
12467 xx[38] = xx[795] * xx[48];
12468 xx[734] = xx[34] + xx[38];
12469 xx[735] = xx[799] * xx[39];
12470 xx[736] = xx[795] * xx[39];
12471 xx[801] = - xx[734];
12472 xx[802] = - xx[735];
12473 xx[803] = - xx[736];
12474 pm_math_cross3(xx + 198, xx + 801, xx + 807);
12475 xx[801] = xx[80] * (xx[807] - xx[734] * xx[43]) + xx[207];
12476 xx[802] = xx[80] * (xx[808] - xx[735] * xx[43]) + xx[201] - xx[795] - xx[74];
12477 xx[803] = xx[799] + xx[80] * (xx[809] - xx[736] * xx[43]) + xx[202] - xx[73];
12478 pm_math_quatXform(xx + 153, xx + 801, xx + 734);
12479 xx[201] = xx[728] * xx[728];
12480 xx[202] = xx[731] * xx[64];
12481 xx[64] = xx[673] * xx[728];
12482 xx[801] = (xx[30] + xx[27]) * xx[80];
12483 xx[802] = xx[22] - (xx[23] + xx[201]) * xx[80];
12484 xx[803] = xx[80] * (xx[202] - xx[64]);
12485 pm_math_cross3(xx + 801, xx + 84, xx + 807);
12486 pm_math_quatXform(xx + 783, xx + 807, xx + 801);
12487 xx[23] = xx[798] * xx[46];
12488 xx[27] = xx[798] * xx[39];
12489 xx[30] = xx[27] - xx[38];
12490 xx[38] = xx[795] * xx[46];
12491 xx[807] = xx[23];
12492 xx[808] = xx[30];
12493 xx[809] = xx[38];
12494 pm_math_cross3(xx + 198, xx + 807, xx + 817);
12495 xx[807] = xx[795] + (xx[23] * xx[43] + xx[817]) * xx[80] + xx[166] + xx[74];
12496 xx[808] = (xx[30] * xx[43] + xx[818]) * xx[80] + xx[58];
12497 xx[809] = (xx[38] * xx[43] + xx[819]) * xx[80] + xx[61] - xx[798] - xx[72];
12498 pm_math_quatXform(xx + 153, xx + 807, xx + 817);
12499 xx[807] = xx[80] * (xx[33] - xx[31]);
12500 xx[808] = (xx[64] + xx[202]) * xx[80];
12501 xx[809] = xx[22] - (xx[201] + xx[16]) * xx[80];
12502 pm_math_cross3(xx + 807, xx + 84, xx + 820);
12503 pm_math_quatXform(xx + 783, xx + 820, xx + 807);
12504 xx[16] = xx[798] * xx[48];
12505 xx[23] = xx[799] * xx[48];
12506 xx[30] = xx[27] - xx[34];
12507 xx[783] = xx[16];
12508 xx[784] = xx[23];
12509 xx[785] = xx[30];
12510 pm_math_cross3(xx + 198, xx + 783, xx + 820);
12511 xx[198] = (xx[16] * xx[43] + xx[820]) * xx[80] + xx[59] - xx[799] + xx[73];
12512 xx[199] = xx[798] + (xx[23] * xx[43] + xx[821]) * xx[80] + xx[11] + xx[72];
12513 xx[200] = (xx[30] * xx[43] + xx[822]) * xx[80] + xx[47];
12514 pm_math_quatXform(xx + 153, xx + 198, xx + 46);
12515 xx[11] = xx[674] * xx[191] + xx[194] * xx[723];
12516 xx[16] = xx[674] * xx[192] - xx[193] * xx[723];
12517 xx[23] = xx[674] * xx[193] + xx[192] * xx[723];
12518 xx[27] = xx[674] * xx[194] - xx[191] * xx[723];
12519 xx[198] = xx[11];
12520 xx[199] = xx[16];
12521 xx[200] = xx[23];
12522 xx[201] = xx[27];
12523 xx[30] = xx[57] * xx[723];
12524 xx[31] = xx[80] * xx[674] * xx[30];
12525 xx[33] = xx[80] * xx[30] * xx[723] - xx[57];
12526 xx[783] = xx[74] * xx[31] + xx[55];
12527 xx[784] = xx[106] + xx[74] * xx[33];
12528 xx[785] = xx[73] * xx[33] - xx[72] * xx[31];
12529 pm_math_quatXform(xx + 198, xx + 783, xx + 797);
12530 xx[30] = 0.1320051346089697;
12531 xx[783] = - (xx[63] * xx[742]);
12532 xx[784] = - (xx[63] * xx[788] + xx[30]);
12533 xx[785] = xx[57] * xx[742];
12534 pm_math_quatXform(xx + 75, xx + 783, xx + 820);
12535 xx[75] = xx[820] + xx[93];
12536 xx[76] = xx[821] + xx[110] - xx[67];
12537 xx[77] = xx[822] - xx[111];
12538 pm_math_quatXform(xx + 157, xx + 75, xx + 783);
12539 xx[75] = xx[16];
12540 xx[76] = xx[23];
12541 xx[77] = xx[27];
12542 xx[31] = xx[72] * xx[27];
12543 xx[33] = xx[73] * xx[27];
12544 xx[27] = xx[72] * xx[16] - xx[23] * xx[73];
12545 xx[820] = - xx[31];
12546 xx[821] = xx[33];
12547 xx[822] = xx[27];
12548 pm_math_cross3(xx + 75, xx + 820, xx + 823);
12549 xx[16] = xx[738] - xx[80] * (xx[789] + xx[65]);
12550 xx[23] = xx[54] + (xx[787] - xx[66]) * xx[80];
12551 xx[34] = xx[194] * xx[23];
12552 xx[38] = xx[16] * xx[194];
12553 xx[39] = xx[192] * xx[23] + xx[16] * xx[193];
12554 xx[64] = xx[34];
12555 xx[65] = xx[38];
12556 xx[66] = - xx[39];
12557 pm_math_cross3(xx + 192, xx + 64, xx + 75);
12558 xx[826] = xx[0];
12559 xx[827] = xx[0];
12560 xx[828] = xx[0];
12561 xx[829] = xx[0];
12562 xx[830] = xx[81] + xx[138] + xx[80] * (xx[146] - xx[129] * xx[14]);
12563 xx[831] = xx[143] + xx[162];
12564 xx[832] = xx[173] + xx[179];
12565 xx[833] = xx[185] + xx[188];
12566 xx[834] = xx[195] + xx[203];
12567 xx[835] = xx[208] + xx[214];
12568 xx[836] = xx[211] + xx[217];
12569 xx[837] = xx[227] + xx[230];
12570 xx[838] = xx[80] * (xx[236] - xx[6] * xx[71]) + xx[9] + xx[80] * (xx[233] -
12571 xx[191] * xx[88]) + xx[73];
12572 xx[839] = xx[0];
12573 xx[840] = xx[0];
12574 xx[841] = xx[0];
12575 xx[842] = xx[0];
12576 xx[843] = xx[0];
12577 xx[844] = xx[0];
12578 xx[845] = xx[0];
12579 xx[846] = xx[0];
12580 xx[847] = - (xx[244] + xx[272] + xx[80] * (xx[283] + xx[241] * xx[247]));
12581 xx[848] = - (xx[294] + xx[300]);
12582 xx[849] = - (xx[303] + xx[259]);
12583 xx[850] = - (xx[80] * (xx[309] - xx[290] * xx[94]) + xx[306] - xx[123]);
12584 xx[851] = xx[0];
12585 xx[852] = xx[0];
12586 xx[853] = xx[0];
12587 xx[854] = xx[0];
12588 xx[855] = xx[0];
12589 xx[856] = xx[0];
12590 xx[857] = xx[0];
12591 xx[858] = xx[0];
12592 xx[859] = xx[0];
12593 xx[860] = xx[0];
12594 xx[861] = xx[0];
12595 xx[862] = xx[0];
12596 xx[863] = xx[82] + xx[136] + (xx[130] * xx[14] + xx[147]) * xx[80];
12597 xx[864] = xx[144] + xx[163];
12598 xx[865] = xx[174] + xx[180];
12599 xx[866] = xx[186] + xx[189];
12600 xx[867] = xx[196] + xx[204];
12601 xx[868] = xx[209] + xx[215];
12602 xx[869] = xx[212] + xx[218];
12603 xx[870] = xx[228] + xx[231];
12604 xx[871] = (xx[6] * xx[91] + xx[237]) * xx[80] + xx[32] + (xx[191] * xx[89] +
12605 xx[234]) * xx[80] + xx[72];
12606 xx[872] = xx[0];
12607 xx[873] = xx[0];
12608 xx[874] = xx[0];
12609 xx[875] = xx[0];
12610 xx[876] = xx[0];
12611 xx[877] = xx[0];
12612 xx[878] = xx[0];
12613 xx[879] = xx[0];
12614 xx[880] = - (xx[245] + xx[278] + (xx[284] - xx[241] * xx[271]) * xx[80]);
12615 xx[881] = - (xx[295] + xx[301]);
12616 xx[882] = - (xx[304] + xx[260]);
12617 xx[883] = - ((xx[310] - xx[123] * xx[290] * xx[293]) * xx[80] + xx[307] + xx
12618 [102]);
12619 xx[884] = xx[0];
12620 xx[885] = xx[0];
12621 xx[886] = xx[0];
12622 xx[887] = xx[0];
12623 xx[888] = xx[0];
12624 xx[889] = xx[0];
12625 xx[890] = xx[0];
12626 xx[891] = xx[0];
12627 xx[892] = xx[0];
12628 xx[893] = xx[0];
12629 xx[894] = xx[0];
12630 xx[895] = xx[0];
12631 xx[896] = xx[83] + (xx[14] * xx[142] + xx[148]) * xx[80];
12632 xx[897] = xx[145] + xx[164];
12633 xx[898] = xx[175] + xx[181];
12634 xx[899] = xx[187] + xx[190];
12635 xx[900] = xx[197] + xx[205];
12636 xx[901] = xx[210] + xx[216];
12637 xx[902] = xx[213] + xx[219];
12638 xx[903] = xx[229] + xx[232];
12639 xx[904] = (xx[6] * xx[49] + xx[238]) * xx[80] + (xx[191] * xx[92] + xx[235]) *
12640 xx[80];
12641 xx[905] = xx[0];
12642 xx[906] = xx[0];
12643 xx[907] = xx[0];
12644 xx[908] = xx[0];
12645 xx[909] = xx[0];
12646 xx[910] = xx[0];
12647 xx[911] = xx[0];
12648 xx[912] = xx[0];
12649 xx[913] = - (xx[246] + (xx[285] - xx[241] * xx[279]) * xx[80]);
12650 xx[914] = - (xx[296] + xx[302]);
12651 xx[915] = - (xx[305] + xx[261]);
12652 xx[916] = - ((xx[290] * xx[161] + xx[311]) * xx[80] + xx[308]);
12653 xx[917] = xx[0];
12654 xx[918] = xx[0];
12655 xx[919] = xx[0];
12656 xx[920] = xx[0];
12657 xx[921] = xx[0];
12658 xx[922] = xx[0];
12659 xx[923] = xx[0];
12660 xx[924] = xx[0];
12661 xx[925] = xx[0];
12662 xx[926] = xx[0];
12663 xx[927] = xx[0];
12664 xx[928] = xx[0];
12665 xx[929] = xx[332] + xx[344] + xx[80] * (xx[349] - xx[342] * xx[14]);
12666 xx[930] = xx[356] + xx[362];
12667 xx[931] = xx[365] + xx[346];
12668 xx[932] = xx[359] + xx[320];
12669 xx[933] = xx[370] + xx[375];
12670 xx[934] = xx[380] + xx[335];
12671 xx[935] = xx[383] + xx[316];
12672 xx[936] = xx[338] + xx[389];
12673 xx[937] = xx[0];
12674 xx[938] = xx[80] * (xx[392] + xx[352] * xx[206]) + xx[386] - xx[73];
12675 xx[939] = xx[0];
12676 xx[940] = xx[0];
12677 xx[941] = xx[0];
12678 xx[942] = - (xx[395] + xx[412] + xx[80] * (xx[421] - xx[398] * xx[315]));
12679 xx[943] = - (xx[418] + xx[435]);
12680 xx[944] = - (xx[432] + xx[402]);
12681 xx[945] = - (xx[80] * (xx[441] - xx[428] * xx[248]) + xx[438] - xx[123]);
12682 xx[946] = xx[0];
12683 xx[947] = xx[0];
12684 xx[948] = xx[0];
12685 xx[949] = xx[0];
12686 xx[950] = xx[0];
12687 xx[951] = xx[0];
12688 xx[952] = xx[0];
12689 xx[953] = xx[0];
12690 xx[954] = xx[0];
12691 xx[955] = xx[0];
12692 xx[956] = xx[0];
12693 xx[957] = xx[0];
12694 xx[958] = xx[0];
12695 xx[959] = xx[0];
12696 xx[960] = xx[0];
12697 xx[961] = xx[0];
12698 xx[962] = xx[333] + xx[341] + (xx[343] * xx[14] + xx[350]) * xx[80];
12699 xx[963] = xx[357] + xx[363];
12700 xx[964] = xx[366] + xx[347];
12701 xx[965] = xx[360] + xx[321];
12702 xx[966] = xx[371] + xx[376];
12703 xx[967] = xx[381] + xx[336];
12704 xx[968] = xx[384] + xx[317];
12705 xx[969] = xx[339] + xx[390];
12706 xx[970] = xx[0];
12707 xx[971] = (xx[393] - xx[73] * xx[352] * xx[355]) * xx[80] + xx[387] - xx[72];
12708 xx[972] = xx[0];
12709 xx[973] = xx[0];
12710 xx[974] = xx[0];
12711 xx[975] = - (xx[396] + xx[416] + (xx[411] * xx[315] + xx[422]) * xx[80]);
12712 xx[976] = - (xx[419] + xx[436]);
12713 xx[977] = - (xx[433] + xx[403]);
12714 xx[978] = - ((xx[442] - xx[123] * xx[428] * xx[431]) * xx[80] + xx[439] + xx
12715 [102]);
12716 xx[979] = xx[0];
12717 xx[980] = xx[0];
12718 xx[981] = xx[0];
12719 xx[982] = xx[0];
12720 xx[983] = xx[0];
12721 xx[984] = xx[0];
12722 xx[985] = xx[0];
12723 xx[986] = xx[0];
12724 xx[987] = xx[0];
12725 xx[988] = xx[0];
12726 xx[989] = xx[0];
12727 xx[990] = xx[0];
12728 xx[991] = xx[0];
12729 xx[992] = xx[0];
12730 xx[993] = xx[0];
12731 xx[994] = xx[0];
12732 xx[995] = xx[334] + (xx[345] * xx[14] + xx[351]) * xx[80];
12733 xx[996] = xx[358] + xx[364];
12734 xx[997] = xx[367] + xx[348];
12735 xx[998] = xx[361] + xx[322];
12736 xx[999] = xx[372] + xx[377];
12737 xx[1000] = xx[382] + xx[337];
12738 xx[1001] = xx[385] + xx[318];
12739 xx[1002] = xx[340] + xx[391];
12740 xx[1003] = xx[0];
12741 xx[1004] = (xx[352] * xx[255] + xx[394]) * xx[80] + xx[388];
12742 xx[1005] = xx[0];
12743 xx[1006] = xx[0];
12744 xx[1007] = xx[0];
12745 xx[1008] = - (xx[397] + (xx[315] * xx[417] + xx[423]) * xx[80]);
12746 xx[1009] = - (xx[420] + xx[437]);
12747 xx[1010] = - (xx[434] + xx[404]);
12748 xx[1011] = - ((xx[428] * xx[251] + xx[443]) * xx[80] + xx[440]);
12749 xx[1012] = xx[0];
12750 xx[1013] = xx[0];
12751 xx[1014] = xx[0];
12752 xx[1015] = xx[0];
12753 xx[1016] = xx[0];
12754 xx[1017] = xx[0];
12755 xx[1018] = xx[0];
12756 xx[1019] = xx[0];
12757 xx[1020] = xx[0];
12758 xx[1021] = xx[0];
12759 xx[1022] = xx[0];
12760 xx[1023] = xx[0];
12761 xx[1024] = xx[0];
12762 xx[1025] = xx[0];
12763 xx[1026] = xx[0];
12764 xx[1027] = xx[0];
12765 xx[1028] = xx[464] + xx[476] + xx[80] * (xx[482] - xx[474] * xx[14]);
12766 xx[1029] = xx[489] + xx[495];
12767 xx[1030] = xx[498] + xx[479];
12768 xx[1031] = xx[492] + xx[452];
12769 xx[1032] = xx[503] + xx[508];
12770 xx[1033] = xx[513] + xx[470];
12771 xx[1034] = xx[516] + xx[448];
12772 xx[1035] = xx[519] + xx[459];
12773 xx[1036] = xx[0];
12774 xx[1037] = xx[0];
12775 xx[1038] = xx[80] * (xx[525] - xx[485] * xx[369]) + xx[522] + xx[73];
12776 xx[1039] = xx[0];
12777 xx[1040] = xx[0];
12778 xx[1041] = xx[0];
12779 xx[1042] = xx[0];
12780 xx[1043] = xx[0];
12781 xx[1044] = xx[0];
12782 xx[1045] = xx[0];
12783 xx[1046] = xx[0];
12784 xx[1047] = xx[0];
12785 xx[1048] = xx[0];
12786 xx[1049] = - (xx[528] + xx[550] + xx[80] * (xx[560] + xx[501] * xx[531]));
12787 xx[1050] = - (xx[557] + xx[574]);
12788 xx[1051] = - (xx[571] + xx[540]);
12789 xx[1052] = - (xx[80] * (xx[580] - xx[567] * xx[323]) + xx[577] - xx[123]);
12790 xx[1053] = xx[0];
12791 xx[1054] = xx[0];
12792 xx[1055] = xx[0];
12793 xx[1056] = xx[0];
12794 xx[1057] = xx[0];
12795 xx[1058] = xx[0];
12796 xx[1059] = xx[0];
12797 xx[1060] = xx[0];
12798 xx[1061] = xx[465] + xx[477] + (xx[475] * xx[14] + xx[483]) * xx[80];
12799 xx[1062] = xx[490] + xx[496];
12800 xx[1063] = xx[499] + xx[480];
12801 xx[1064] = xx[493] + xx[453];
12802 xx[1065] = xx[504] + xx[509];
12803 xx[1066] = xx[514] + xx[471];
12804 xx[1067] = xx[517] + xx[449];
12805 xx[1068] = xx[520] + xx[460];
12806 xx[1069] = xx[0];
12807 xx[1070] = xx[0];
12808 xx[1071] = (xx[73] * xx[485] * xx[488] + xx[526]) * xx[80] + xx[523] + xx[72];
12809 xx[1072] = xx[0];
12810 xx[1073] = xx[0];
12811 xx[1074] = xx[0];
12812 xx[1075] = xx[0];
12813 xx[1076] = xx[0];
12814 xx[1077] = xx[0];
12815 xx[1078] = xx[0];
12816 xx[1079] = xx[0];
12817 xx[1080] = xx[0];
12818 xx[1081] = xx[0];
12819 xx[1082] = - (xx[529] + xx[555] + (xx[561] - xx[501] * xx[549]) * xx[80]);
12820 xx[1083] = - (xx[558] + xx[575]);
12821 xx[1084] = - (xx[572] + xx[541]);
12822 xx[1085] = - ((xx[581] - xx[123] * xx[567] * xx[570]) * xx[80] + xx[578] + xx
12823 [102]);
12824 xx[1086] = xx[0];
12825 xx[1087] = xx[0];
12826 xx[1088] = xx[0];
12827 xx[1089] = xx[0];
12828 xx[1090] = xx[0];
12829 xx[1091] = xx[0];
12830 xx[1092] = xx[0];
12831 xx[1093] = xx[0];
12832 xx[1094] = xx[466] + (xx[14] * xx[478] + xx[484]) * xx[80];
12833 xx[1095] = xx[491] + xx[497];
12834 xx[1096] = xx[500] + xx[481];
12835 xx[1097] = xx[494] + xx[454];
12836 xx[1098] = xx[505] + xx[510];
12837 xx[1099] = xx[515] + xx[472];
12838 xx[1100] = xx[518] + xx[450];
12839 xx[1101] = xx[521] + xx[461];
12840 xx[1102] = xx[0];
12841 xx[1103] = xx[0];
12842 xx[1104] = (xx[485] * xx[405] + xx[527]) * xx[80] + xx[524];
12843 xx[1105] = xx[0];
12844 xx[1106] = xx[0];
12845 xx[1107] = xx[0];
12846 xx[1108] = xx[0];
12847 xx[1109] = xx[0];
12848 xx[1110] = xx[0];
12849 xx[1111] = xx[0];
12850 xx[1112] = xx[0];
12851 xx[1113] = xx[0];
12852 xx[1114] = xx[0];
12853 xx[1115] = - (xx[530] + (xx[501] * xx[556] + xx[562]) * xx[80]);
12854 xx[1116] = - (xx[559] + xx[576]);
12855 xx[1117] = - (xx[573] + xx[542]);
12856 xx[1118] = - ((xx[567] * xx[444] + xx[582]) * xx[80] + xx[579]);
12857 xx[1119] = xx[0];
12858 xx[1120] = xx[0];
12859 xx[1121] = xx[0];
12860 xx[1122] = xx[0];
12861 xx[1123] = xx[0];
12862 xx[1124] = xx[0];
12863 xx[1125] = xx[0];
12864 xx[1126] = xx[0];
12865 xx[1127] = xx[537] + xx[613] + xx[80] * (xx[618] - xx[611] * xx[14]);
12866 xx[1128] = xx[625] + xx[631];
12867 xx[1129] = xx[634] + xx[615];
12868 xx[1130] = xx[628] + xx[591];
12869 xx[1131] = xx[639] + xx[644];
12870 xx[1132] = xx[649] + xx[605];
12871 xx[1133] = xx[652] + xx[587];
12872 xx[1134] = xx[655] + xx[598];
12873 xx[1135] = xx[0];
12874 xx[1136] = xx[0];
12875 xx[1137] = xx[0];
12876 xx[1138] = xx[80] * (xx[661] - xx[621] * xx[543]) + xx[658] + xx[73];
12877 xx[1139] = xx[0];
12878 xx[1140] = xx[0];
12879 xx[1141] = xx[0];
12880 xx[1142] = xx[0];
12881 xx[1143] = xx[0];
12882 xx[1144] = xx[0];
12883 xx[1145] = xx[0];
12884 xx[1146] = xx[0];
12885 xx[1147] = xx[0];
12886 xx[1148] = xx[0];
12887 xx[1149] = xx[0];
12888 xx[1150] = xx[0];
12889 xx[1151] = xx[0];
12890 xx[1152] = - (xx[664] + xx[687] + xx[80] * (xx[697] - xx[638] * xx[667]));
12891 xx[1153] = - (xx[694] + xx[711]);
12892 xx[1154] = - (xx[708] + xx[677]);
12893 xx[1155] = - (xx[80] * (xx[717] - xx[704] * xx[447]) + xx[714] - xx[123]);
12894 xx[1156] = xx[0];
12895 xx[1157] = xx[0];
12896 xx[1158] = xx[0];
12897 xx[1159] = xx[0];
12898 xx[1160] = xx[538] + xx[610] + (xx[612] * xx[14] + xx[619]) * xx[80];
12899 xx[1161] = xx[626] + xx[632];
12900 xx[1162] = xx[635] + xx[616];
12901 xx[1163] = xx[629] + xx[592];
12902 xx[1164] = xx[640] + xx[645];
12903 xx[1165] = xx[650] + xx[606];
12904 xx[1166] = xx[653] + xx[588];
12905 xx[1167] = xx[656] + xx[599];
12906 xx[1168] = xx[0];
12907 xx[1169] = xx[0];
12908 xx[1170] = xx[0];
12909 xx[1171] = (xx[73] * xx[621] * xx[624] + xx[662]) * xx[80] + xx[659] + xx[72];
12910 xx[1172] = xx[0];
12911 xx[1173] = xx[0];
12912 xx[1174] = xx[0];
12913 xx[1175] = xx[0];
12914 xx[1176] = xx[0];
12915 xx[1177] = xx[0];
12916 xx[1178] = xx[0];
12917 xx[1179] = xx[0];
12918 xx[1180] = xx[0];
12919 xx[1181] = xx[0];
12920 xx[1182] = xx[0];
12921 xx[1183] = xx[0];
12922 xx[1184] = xx[0];
12923 xx[1185] = - (xx[665] + xx[692] + (xx[638] * xx[686] + xx[698]) * xx[80]);
12924 xx[1186] = - (xx[695] + xx[712]);
12925 xx[1187] = - (xx[709] + xx[678]);
12926 xx[1188] = - ((xx[718] - xx[123] * xx[704] * xx[707]) * xx[80] + xx[715] + xx
12927 [102]);
12928 xx[1189] = xx[0];
12929 xx[1190] = xx[0];
12930 xx[1191] = xx[0];
12931 xx[1192] = xx[0];
12932 xx[1193] = xx[539] + (xx[14] * xx[614] + xx[620]) * xx[80];
12933 xx[1194] = xx[627] + xx[633];
12934 xx[1195] = xx[636] + xx[617];
12935 xx[1196] = xx[630] + xx[593];
12936 xx[1197] = xx[641] + xx[646];
12937 xx[1198] = xx[651] + xx[607];
12938 xx[1199] = xx[654] + xx[589];
12939 xx[1200] = xx[657] + xx[600];
12940 xx[1201] = xx[0];
12941 xx[1202] = xx[0];
12942 xx[1203] = xx[0];
12943 xx[1204] = (xx[621] * xx[586] + xx[663]) * xx[80] + xx[660];
12944 xx[1205] = xx[0];
12945 xx[1206] = xx[0];
12946 xx[1207] = xx[0];
12947 xx[1208] = xx[0];
12948 xx[1209] = xx[0];
12949 xx[1210] = xx[0];
12950 xx[1211] = xx[0];
12951 xx[1212] = xx[0];
12952 xx[1213] = xx[0];
12953 xx[1214] = xx[0];
12954 xx[1215] = xx[0];
12955 xx[1216] = xx[0];
12956 xx[1217] = xx[0];
12957 xx[1218] = - (xx[666] + (xx[699] - xx[638] * xx[693]) * xx[80]);
12958 xx[1219] = - (xx[696] + xx[713]);
12959 xx[1220] = - (xx[710] + xx[679]);
12960 xx[1221] = - ((xx[704] * xx[583] + xx[719]) * xx[80] + xx[716]);
12961 xx[1222] = - (xx[724] + xx[749] + xx[80] * (xx[760] + xx[721] * xx[727]));
12962 xx[1223] = - (xx[757] + xx[774]);
12963 xx[1224] = - (xx[771] + xx[739]);
12964 xx[1225] = - (xx[80] * (xx[780] - xx[767] * xx[585]) + xx[777] - xx[123]);
12965 xx[1226] = xx[17] + xx[800] + xx[80] * (xx[804] - xx[120] * xx[14]);
12966 xx[1227] = xx[811] + xx[170];
12967 xx[1228] = xx[814] + xx[182];
12968 xx[1229] = xx[35] + xx[50];
12969 xx[1230] = xx[68] + xx[734];
12970 xx[1231] = xx[801] + xx[817];
12971 xx[1232] = xx[807] + xx[46];
12972 xx[1233] = xx[797] + xx[783];
12973 xx[1234] = xx[0];
12974 xx[1235] = xx[0];
12975 xx[1236] = xx[0];
12976 xx[1237] = xx[0];
12977 xx[1238] = xx[80] * (xx[823] - xx[11] * xx[31]) + xx[16] + xx[80] * (xx[75] +
12978 xx[191] * xx[34]) + xx[73];
12979 xx[1239] = xx[0];
12980 xx[1240] = xx[0];
12981 xx[1241] = xx[0];
12982 xx[1242] = xx[0];
12983 xx[1243] = xx[0];
12984 xx[1244] = xx[0];
12985 xx[1245] = xx[0];
12986 xx[1246] = xx[0];
12987 xx[1247] = xx[0];
12988 xx[1248] = xx[0];
12989 xx[1249] = xx[0];
12990 xx[1250] = xx[0];
12991 xx[1251] = xx[0];
12992 xx[1252] = xx[0];
12993 xx[1253] = xx[0];
12994 xx[1254] = xx[0];
12995 xx[1255] = - (xx[725] + xx[755] + (xx[761] - xx[721] * xx[748]) * xx[80]);
12996 xx[1256] = - (xx[758] + xx[775]);
12997 xx[1257] = - (xx[772] + xx[740]);
12998 xx[1258] = - ((xx[781] - xx[123] * xx[767] * xx[770]) * xx[80] + xx[778] + xx
12999 [102]);
13000 xx[1259] = xx[18] + xx[53] + (xx[137] * xx[14] + xx[805]) * xx[80];
13001 xx[1260] = xx[812] + xx[171];
13002 xx[1261] = xx[815] + xx[183];
13003 xx[1262] = xx[36] + xx[51];
13004 xx[1263] = xx[69] + xx[735];
13005 xx[1264] = xx[802] + xx[818];
13006 xx[1265] = xx[808] + xx[47];
13007 xx[1266] = xx[798] + xx[784];
13008 xx[1267] = xx[0];
13009 xx[1268] = xx[0];
13010 xx[1269] = xx[0];
13011 xx[1270] = xx[0];
13012 xx[1271] = (xx[11] * xx[33] + xx[824]) * xx[80] - xx[23] + (xx[191] * xx[38] +
13013 xx[76]) * xx[80] + xx[72];
13014 xx[1272] = xx[0];
13015 xx[1273] = xx[0];
13016 xx[1274] = xx[0];
13017 xx[1275] = xx[0];
13018 xx[1276] = xx[0];
13019 xx[1277] = xx[0];
13020 xx[1278] = xx[0];
13021 xx[1279] = xx[0];
13022 xx[1280] = xx[0];
13023 xx[1281] = xx[0];
13024 xx[1282] = xx[0];
13025 xx[1283] = xx[0];
13026 xx[1284] = xx[0];
13027 xx[1285] = xx[0];
13028 xx[1286] = xx[0];
13029 xx[1287] = xx[0];
13030 xx[1288] = - (xx[726] + (xx[762] - xx[721] * xx[756]) * xx[80]);
13031 xx[1289] = - (xx[759] + xx[776]);
13032 xx[1290] = - (xx[773] + xx[741]);
13033 xx[1291] = - ((xx[767] * xx[669] + xx[782]) * xx[80] + xx[779]);
13034 xx[1292] = xx[19] + (xx[796] * xx[14] + xx[806]) * xx[80];
13035 xx[1293] = xx[813] + xx[172];
13036 xx[1294] = xx[816] + xx[184];
13037 xx[1295] = xx[37] + xx[52];
13038 xx[1296] = xx[70] + xx[736];
13039 xx[1297] = xx[803] + xx[819];
13040 xx[1298] = xx[809] + xx[48];
13041 xx[1299] = xx[799] + xx[785];
13042 xx[1300] = xx[0];
13043 xx[1301] = xx[0];
13044 xx[1302] = xx[0];
13045 xx[1303] = xx[0];
13046 xx[1304] = (xx[11] * xx[27] + xx[825]) * xx[80] + (xx[77] - xx[191] * xx[39]) *
13047 xx[80];
13048 xx[1305] = xx[0];
13049 xx[1306] = xx[0];
13050 xx[1307] = xx[0];
13051 xx[1308] = xx[0];
13052 xx[1309] = xx[0];
13053 xx[1310] = xx[0];
13054 xx[1311] = xx[0];
13055 xx[1312] = xx[0];
13056 xx[1313] = xx[0];
13057 xx[1314] = xx[0];
13058 xx[1315] = xx[0];
13059 xx[1316] = xx[0];
13060 xx[1317] = xx[0];
13061 xx[1318] = xx[0];
13062 xx[1319] = xx[0];
13063 xx[1320] = xx[0];
13064 pm_math_quatXform(xx + 220, xx + 84, xx + 16);
13065 pm_math_quatXform(xx + 191, xx + 97, xx + 31);
13066 xx[34] = - xx[107];
13067 xx[35] = xx[109];
13068 xx[36] = - xx[101];
13069 pm_math_quatXform(xx + 157, xx + 34, xx + 37);
13070 xx[34] = xx[121];
13071 xx[35] = xx[124];
13072 xx[36] = xx[116];
13073 pm_math_quatXform(xx + 153, xx + 34, xx + 46);
13074 pm_math_quatXform(xx + 149, xx + 132, xx + 34);
13075 xx[49] = xx[14];
13076 xx[50] = xx[3];
13077 xx[51] = xx[7];
13078 xx[52] = xx[15];
13079 xx[6] = xx[131] * xx[10] - xx[135] * xx[8];
13080 xx[9] = 0.03194045366784892;
13081 xx[11] = 8.762500002356819e-3;
13082 xx[19] = 7.175000002356807e-3;
13083 xx[64] = xx[80] * xx[6] * xx[10] + xx[9];
13084 xx[65] = xx[80] * xx[6] * xx[8] + xx[135];
13085 xx[66] = xx[11] - (xx[8] * xx[19] * xx[8] + xx[19] * xx[10] * xx[10]) * xx[80];
13086 pm_math_quatXform(xx + 49, xx + 64, xx + 68);
13087 xx[6] = 1.5875e-3;
13088 xx[8] = xx[6] * xx[7];
13089 xx[10] = 0.02520954632904373;
13090 xx[23] = xx[3] * xx[6] - xx[15] * xx[10];
13091 xx[27] = xx[10] * xx[7];
13092 xx[64] = - xx[8];
13093 xx[65] = xx[23];
13094 xx[66] = xx[27];
13095 pm_math_cross3(xx + 139, xx + 64, xx + 75);
13096 xx[43] = (xx[75] - xx[8] * xx[14]) * xx[80];
13097 xx[8] = 0.04299719117889741;
13098 xx[53] = xx[37] + xx[46] + xx[34] + xx[68] - xx[43] - xx[8];
13099 pm_math_quatXform(xx + 290, xx + 267, xx + 64);
13100 pm_math_quatXform(xx + 286, xx + 263, xx + 81);
13101 xx[91] = xx[241];
13102 xx[92] = xx[273];
13103 xx[93] = xx[225];
13104 xx[94] = xx[274];
13105 xx[58] = xx[266] * xx[118] + xx[270] * xx[226];
13106 xx[59] = 0.03194045366071555;
13107 xx[61] = 4.000000007367204e-3;
13108 xx[71] = 2.412500007367193e-3;
13109 xx[97] = xx[80] * xx[58] * xx[226] + xx[59];
13110 xx[98] = xx[80] * xx[58] * xx[118] - xx[266];
13111 xx[99] = (xx[118] * xx[61] * xx[118] + xx[61] * xx[226] * xx[226]) * xx[80] -
13112 xx[71];
13113 pm_math_quatXform(xx + 91, xx + 97, xx + 109);
13114 xx[58] = 1.587500000000011e-3;
13115 xx[78] = xx[225] * xx[58];
13116 xx[88] = xx[10] * xx[242] + xx[58] * xx[125];
13117 xx[89] = xx[225] * xx[10];
13118 xx[97] = xx[78];
13119 xx[98] = xx[88];
13120 xx[99] = xx[89];
13121 pm_math_cross3(xx + 275, xx + 97, xx + 132);
13122 xx[97] = (xx[241] * xx[78] + xx[132]) * xx[80];
13123 xx[78] = 0.1417622656843958;
13124 xx[98] = (xx[23] * xx[14] + xx[76]) * xx[80];
13125 xx[23] = 0.02992188481855372;
13126 xx[99] = xx[38] + xx[47] + xx[35] + xx[69] - xx[98] + xx[23];
13127 xx[101] = (xx[241] * xx[88] + xx[133]) * xx[80];
13128 xx[88] = 0.02992349485130436;
13129 xx[34] = xx[80] * (xx[77] + xx[27] * xx[14]);
13130 xx[27] = 0.1428830924490354;
13131 xx[35] = xx[39] + xx[48] + xx[36] + xx[70] - xx[34] + xx[27];
13132 xx[36] = xx[80] * (xx[134] + xx[241] * xx[89]);
13133 xx[37] = 0.1065919054848736;
13134 pm_math_quatXform(xx + 352, xx + 84, xx + 46);
13135 pm_math_quatXform(xx + 191, xx + 329, xx + 68);
13136 pm_math_quatXform(xx + 428, xx + 267, xx + 75);
13137 pm_math_quatXform(xx + 424, xx + 406, xx + 132);
13138 xx[142] = xx[315];
13139 xx[143] = xx[224];
13140 xx[144] = xx[256];
13141 xx[145] = xx[319];
13142 xx[38] = xx[410] * xx[258] - xx[409] * xx[313];
13143 xx[39] = 0.03194045368023388;
13144 xx[89] = 8.762499998974573e-3;
13145 xx[107] = 7.174999998974562e-3;
13146 xx[136] = xx[80] * xx[38] * xx[313] + xx[39];
13147 xx[137] = xx[80] * xx[38] * xx[258] - xx[410];
13148 xx[138] = xx[89] - (xx[258] * xx[107] * xx[258] + xx[107] * xx[313] * xx[313])
13149 * xx[80];
13150 pm_math_quatXform(xx + 142, xx + 136, xx + 146);
13151 xx[38] = xx[6] * xx[256];
13152 xx[116] = 0.02520954632904374;
13153 xx[118] = xx[224] * xx[6] - xx[319] * xx[116];
13154 xx[6] = xx[116] * xx[256];
13155 xx[136] = - xx[38];
13156 xx[137] = xx[118];
13157 xx[138] = xx[6];
13158 pm_math_cross3(xx + 413, xx + 136, xx + 149);
13159 xx[120] = (xx[149] - xx[38] * xx[315]) * xx[80];
13160 xx[38] = 0.05787438452398606;
13161 xx[121] = (xx[118] * xx[315] + xx[150]) * xx[80];
13162 xx[118] = 0.02992259737327991;
13163 xx[124] = xx[80] * (xx[151] + xx[6] * xx[315]);
13164 xx[6] = 0.1550274415345039;
13165 pm_math_quatXform(xx + 485, xx + 84, xx + 136);
13166 pm_math_quatXform(xx + 191, xx + 467, xx + 149);
13167 pm_math_quatXform(xx + 567, xx + 267, xx + 152);
13168 pm_math_quatXform(xx + 563, xx + 544, xx + 155);
13169 xx[158] = xx[501];
13170 xx[159] = xx[400];
13171 xx[160] = xx[451];
13172 xx[161] = xx[551];
13173 xx[129] = xx[547] * xx[455] - xx[548] * xx[378];
13174 xx[130] = 0.03194045366579833;
13175 xx[162] = 3.99999999470772e-3;
13176 xx[163] = 2.412499994707708e-3;
13177 xx[170] = xx[80] * xx[129] * xx[455] + xx[130];
13178 xx[171] = xx[80] * xx[129] * xx[378] + xx[548];
13179 xx[172] = (xx[378] * xx[162] * xx[378] + xx[162] * xx[455] * xx[455]) * xx[80]
13180 - xx[163];
13181 pm_math_quatXform(xx + 158, xx + 170, xx + 173);
13182 xx[129] = xx[451] * xx[58];
13183 xx[164] = xx[10] * xx[502] - xx[58] * xx[400];
13184 xx[166] = xx[451] * xx[10];
13185 xx[170] = xx[129];
13186 xx[171] = xx[164];
13187 xx[172] = xx[166];
13188 pm_math_cross3(xx + 552, xx + 170, xx + 179);
13189 xx[170] = (xx[501] * xx[129] + xx[179]) * xx[80];
13190 xx[129] = 0.06304794220310322;
13191 xx[171] = (xx[501] * xx[164] + xx[180]) * xx[80];
13192 xx[164] = 0.02992204813763048;
13193 xx[172] = xx[80] * (xx[181] + xx[501] * xx[166]);
13194 xx[166] = 0.1313039406712666;
13195 pm_math_quatXform(xx + 621, xx + 84, xx + 179);
13196 pm_math_quatXform(xx + 191, xx + 602, xx + 182);
13197 pm_math_quatXform(xx + 704, xx + 267, xx + 185);
13198 pm_math_quatXform(xx + 700, xx + 681, xx + 188);
13199 xx[202] = xx[638];
13200 xx[203] = xx[688];
13201 xx[204] = xx[594];
13202 xx[205] = xx[642];
13203 xx[195] = xx[684] * xx[608] - xx[685] * xx[507];
13204 xx[196] = 0.03194045367079622;
13205 xx[197] = 3.999999996613603e-3;
13206 xx[206] = 2.412499996613564e-3;
13207 xx[207] = xx[80] * xx[195] * xx[608] + xx[196];
13208 xx[208] = xx[80] * xx[195] * xx[507] + xx[685];
13209 xx[209] = (xx[507] * xx[197] * xx[507] + xx[197] * xx[608] * xx[608]) * xx[80]
13210 - xx[206];
13211 pm_math_quatXform(xx + 202, xx + 207, xx + 210);
13212 xx[195] = 1.587499999999983e-3;
13213 xx[207] = xx[594] * xx[195];
13214 xx[208] = xx[195] * xx[536] - xx[10] * xx[642];
13215 xx[195] = xx[594] * xx[10];
13216 xx[213] = xx[207];
13217 xx[214] = xx[208];
13218 xx[215] = xx[195];
13219 pm_math_cross3(xx + 689, xx + 213, xx + 216);
13220 xx[209] = (xx[638] * xx[207] + xx[216]) * xx[80];
13221 xx[207] = 0.1240382406650065;
13222 xx[213] = (xx[638] * xx[208] + xx[217]) * xx[80];
13223 xx[208] = 0.02992151662180351;
13224 xx[214] = xx[80] * (xx[218] + xx[638] * xx[195]);
13225 xx[195] = 0.04996916497694619;
13226 pm_math_quatXform(xx + 198, xx + 84, xx + 215);
13227 pm_math_quatXform(xx + 191, xx + 792, xx + 198);
13228 pm_math_quatXform(xx + 767, xx + 267, xx + 191);
13229 pm_math_quatXform(xx + 763, xx + 743, xx + 218);
13230 xx[226] = xx[721];
13231 xx[227] = xx[750];
13232 xx[228] = xx[675];
13233 xx[229] = xx[751];
13234 xx[194] = 0.03194045367870467;
13235 xx[201] = xx[747] * xx[590] + xx[746] * xx[676];
13236 xx[221] = 4.0000000045273e-3;
13237 xx[222] = 2.412500004527289e-3;
13238 xx[230] = xx[194] - xx[80] * xx[201] * xx[676];
13239 xx[231] = xx[747] - xx[80] * xx[201] * xx[590];
13240 xx[232] = (xx[590] * xx[221] * xx[590] + xx[221] * xx[676] * xx[676]) * xx[80]
13241 - xx[222];
13242 pm_math_quatXform(xx + 226, xx + 230, xx + 233);
13243 xx[201] = xx[675] * xx[58];
13244 xx[223] = xx[10] * xx[722] + xx[58] * xx[647];
13245 xx[58] = xx[675] * xx[10];
13246 xx[230] = xx[201];
13247 xx[231] = xx[223];
13248 xx[232] = xx[58];
13249 pm_math_cross3(xx + 752, xx + 230, xx + 236);
13250 xx[230] = (xx[721] * xx[201] + xx[236]) * xx[80];
13251 xx[201] = 0.1816563790182656;
13252 xx[231] = (xx[721] * xx[223] + xx[237]) * xx[80];
13253 xx[223] = 0.02992367610368172;
13254 xx[232] = xx[80] * (xx[238] + xx[721] * xx[58]);
13255 xx[58] = 0.01321939793971065;
13256 xx[329] = - (xx[16] + xx[31] + xx[53] - (xx[64] + xx[81] + xx[109] - xx[97]) -
13257 xx[78]);
13258 xx[330] = - (xx[17] + xx[32] + xx[99] - (xx[65] + xx[82] + xx[110] - xx[101])
13259 - xx[88]);
13260 xx[331] = - (xx[18] + xx[33] + xx[35] - (xx[66] + xx[83] + xx[111] - xx[36]) +
13261 xx[37]);
13262 xx[332] = - (xx[46] + xx[68] + xx[53] - (xx[75] + xx[132] + xx[146] - xx[120])
13263 - xx[38]);
13264 xx[333] = - (xx[47] + xx[69] + xx[99] - (xx[76] + xx[133] + xx[147] - xx[121])
13265 - xx[118]);
13266 xx[334] = - (xx[48] + xx[70] + xx[35] - (xx[77] + xx[134] + xx[148] - xx[124])
13267 - xx[6]);
13268 xx[335] = - (xx[136] + xx[149] + xx[53] - (xx[152] + xx[155] + xx[173] - xx
13269 [170]) + xx[129]);
13270 xx[336] = - (xx[137] + xx[150] + xx[99] - (xx[153] + xx[156] + xx[174] - xx
13271 [171]) - xx[164]);
13272 xx[337] = - (xx[138] + xx[151] + xx[35] - (xx[154] + xx[157] + xx[175] - xx
13273 [172]) + xx[166]);
13274 xx[338] = - (xx[179] + xx[182] + xx[53] - (xx[185] + xx[188] + xx[210] - xx
13275 [209]) + xx[207]);
13276 xx[339] = - (xx[180] + xx[183] + xx[99] - (xx[186] + xx[189] + xx[211] - xx
13277 [213]) - xx[208]);
13278 xx[340] = - (xx[181] + xx[184] + xx[35] - (xx[187] + xx[190] + xx[212] - xx
13279 [214]) + xx[195]);
13280 xx[341] = - (xx[215] + xx[198] + xx[53] - (xx[191] + xx[218] + xx[233] - xx
13281 [230]) - xx[201]);
13282 xx[342] = - (xx[216] + xx[199] + xx[99] - (xx[192] + xx[219] + xx[234] - xx
13283 [231]) - xx[223]);
13284 xx[343] = - (xx[217] + xx[200] + xx[35] - (xx[193] + xx[220] + xx[235] - xx
13285 [232]) + xx[58]);
13286 xx[16] = 1.0e-8;
13287 memcpy(xx + 1321, xx + 826, 495 * sizeof(double));
13288 factorAndSolveWide(15, 33, xx + 1321, xx + 179, xx + 344, ii + 0, xx + 329,
13289 xx[16], xx + 755);
13290 xx[17] = state[14] + xx[755];
13291 xx[18] = state[25] + xx[759];
13292 xx[31] = xx[18] * xx[2];
13293 xx[32] = cos(xx[31]);
13294 xx[33] = xx[3] * xx[32];
13295 xx[35] = sin(xx[31]);
13296 xx[31] = xx[35] * xx[7];
13297 xx[46] = - (xx[32] * xx[14] + xx[15] * xx[35]);
13298 xx[47] = xx[35] * xx[14] - xx[15] * xx[32];
13299 xx[48] = xx[3] * xx[35] + xx[32] * xx[7];
13300 xx[146] = xx[33] - xx[31];
13301 xx[147] = xx[46];
13302 xx[148] = xx[47];
13303 xx[149] = xx[48];
13304 xx[150] = xx[26];
13305 xx[151] = xx[29];
13306 xx[152] = xx[28];
13307 xx[153] = xx[24];
13308 pm_math_quatDeriv(xx + 150, xx + 760, xx + 154);
13309 xx[53] = xx[24] + xx[157];
13310 xx[24] = xx[26] + xx[154];
13311 xx[26] = xx[29] + xx[155];
13312 xx[29] = xx[28] + xx[156];
13313 xx[28] = 1.0e-64;
13314 xx[64] = sqrt(xx[24] * xx[24] + xx[26] * xx[26] + xx[29] * xx[29] + xx[53] *
13315 xx[53]);
13316 if (xx[28] > xx[64])
13317 xx[64] = xx[28];
13318 xx[65] = xx[53] / xx[64];
13319 xx[53] = xx[24] / xx[64];
13320 xx[24] = xx[21] * xx[65] - xx[25] * xx[53];
13321 xx[66] = xx[29] / xx[64];
13322 xx[29] = xx[26] / xx[64];
13323 xx[26] = xx[21] * xx[66] + xx[25] * xx[29];
13324 xx[64] = - xx[26];
13325 xx[68] = xx[25] * xx[66] - xx[21] * xx[29];
13326 xx[69] = - xx[68];
13327 xx[70] = xx[21] * xx[53] + xx[25] * xx[65];
13328 xx[75] = - xx[70];
13329 xx[150] = xx[24];
13330 xx[151] = xx[64];
13331 xx[152] = xx[69];
13332 xx[153] = xx[75];
13333 xx[154] = xx[42];
13334 xx[155] = xx[45];
13335 xx[156] = xx[44];
13336 xx[157] = xx[40];
13337 pm_math_quatDeriv(xx + 154, xx + 763, xx + 179);
13338 xx[76] = xx[40] + xx[182];
13339 xx[40] = xx[42] + xx[179];
13340 xx[42] = xx[45] + xx[180];
13341 xx[45] = xx[44] + xx[181];
13342 xx[44] = sqrt(xx[40] * xx[40] + xx[42] * xx[42] + xx[45] * xx[45] + xx[76] *
13343 xx[76]);
13344 if (xx[28] > xx[44])
13345 xx[44] = xx[28];
13346 xx[77] = xx[76] / xx[44];
13347 xx[76] = xx[40] / xx[44];
13348 xx[40] = xx[25] * xx[77] - xx[41] * xx[76];
13349 xx[81] = xx[45] / xx[44];
13350 xx[45] = xx[42] / xx[44];
13351 xx[42] = xx[25] * xx[81] - xx[41] * xx[45];
13352 xx[44] = xx[41] * xx[81] + xx[25] * xx[45];
13353 xx[82] = - xx[44];
13354 xx[83] = xx[41] * xx[77] + xx[25] * xx[76];
13355 xx[99] = - xx[83];
13356 xx[154] = xx[40];
13357 xx[155] = xx[42];
13358 xx[156] = xx[82];
13359 xx[157] = xx[99];
13360 xx[109] = state[43] + xx[767];
13361 xx[110] = xx[109] * xx[2];
13362 xx[111] = cos(xx[110]);
13363 xx[132] = state[41] + xx[766];
13364 xx[133] = xx[132] * xx[2];
13365 xx[134] = sin(xx[133]);
13366 xx[136] = xx[57] * xx[134];
13367 xx[137] = xx[56] * xx[136];
13368 xx[138] = xx[63] * xx[134];
13369 xx[134] = xx[62] * xx[138];
13370 xx[173] = cos(xx[133]);
13371 xx[133] = xx[62] * xx[173];
13372 xx[174] = xx[137] + xx[134] - xx[133];
13373 xx[175] = sin(xx[110]);
13374 xx[110] = xx[134] + xx[133] + xx[137];
13375 xx[133] = xx[111] * xx[174] + xx[175] * xx[110];
13376 xx[134] = xx[62] * xx[136];
13377 xx[136] = xx[56] * xx[173];
13378 xx[137] = xx[56] * xx[138];
13379 xx[138] = xx[134] + xx[136] - xx[137];
13380 xx[173] = xx[136] - xx[134] + xx[137];
13381 xx[134] = xx[138] * xx[111] - xx[175] * xx[173];
13382 xx[136] = xx[111] * xx[173] + xx[138] * xx[175];
13383 xx[137] = xx[111] * xx[110] - xx[175] * xx[174];
13384 xx[179] = xx[133];
13385 xx[180] = xx[134];
13386 xx[181] = xx[136];
13387 xx[182] = xx[137];
13388 pm_math_quatCompose(xx + 154, xx + 179, xx + 183);
13389 pm_math_quatCompose(xx + 150, xx + 183, xx + 187);
13390 pm_math_quatCompose(xx + 146, xx + 187, xx + 215);
13391 xx[191] = xx[80] * (xx[188] * xx[190] - xx[187] * xx[189]);
13392 xx[192] = (xx[187] * xx[188] + xx[189] * xx[190]) * xx[80];
13393 xx[193] = xx[22] - (xx[188] * xx[188] + xx[189] * xx[189]) * xx[80];
13394 pm_math_cross3(xx + 191, xx + 84, xx + 187);
13395 pm_math_quatXform(xx + 215, xx + 187, xx + 190);
13396 xx[215] = xx[174];
13397 xx[216] = xx[138];
13398 xx[217] = xx[173];
13399 xx[218] = xx[110];
13400 xx[187] = xx[87] * xx[175];
13401 xx[188] = xx[111] * xx[187];
13402 xx[189] = xx[90] * xx[175];
13403 xx[193] = xx[189] * xx[175];
13404 xx[198] = xx[79] + xx[80] * (xx[188] + xx[193]) - xx[90];
13405 xx[199] = xx[187] * xx[175];
13406 xx[187] = xx[111] * xx[189];
13407 xx[189] = xx[87] - (xx[199] - xx[187]) * xx[80];
13408 xx[210] = - xx[198];
13409 xx[211] = - xx[189];
13410 xx[212] = xx[96];
13411 pm_math_quatXform(xx + 215, xx + 210, xx + 233);
13412 xx[200] = xx[105] * xx[173];
13413 xx[236] = xx[138];
13414 xx[237] = xx[173];
13415 xx[238] = xx[110];
13416 xx[219] = xx[104] * xx[110] - xx[138] * xx[105];
13417 xx[220] = xx[104] * xx[173];
13418 xx[244] = xx[200];
13419 xx[245] = xx[219];
13420 xx[246] = - xx[220];
13421 pm_math_cross3(xx + 236, xx + 244, xx + 258);
13422 xx[236] = xx[103] + xx[104] + (xx[200] * xx[174] + xx[258]) * xx[80];
13423 xx[103] = xx[233] - xx[236];
13424 xx[200] = xx[108] - (xx[174] * xx[219] + xx[259]) * xx[80];
13425 xx[219] = xx[234] + xx[200];
13426 xx[233] = xx[100] + xx[105] + xx[80] * (xx[260] - xx[220] * xx[174]);
13427 xx[100] = xx[235] - xx[233];
13428 xx[244] = xx[103];
13429 xx[245] = xx[219];
13430 xx[246] = xx[100];
13431 pm_math_quatXform(xx + 154, xx + 244, xx + 258);
13432 pm_math_quatXform(xx + 154, xx + 112, xx + 244);
13433 xx[220] = xx[102] + xx[244];
13434 xx[234] = xx[258] + xx[220];
13435 xx[235] = xx[123] + xx[245];
13436 xx[237] = xx[259] + xx[235];
13437 xx[238] = xx[115] + xx[246];
13438 xx[244] = xx[260] + xx[238];
13439 xx[245] = xx[234];
13440 xx[246] = xx[237];
13441 xx[247] = xx[244];
13442 pm_math_quatXform(xx + 150, xx + 245, xx + 258);
13443 pm_math_quatXform(xx + 150, xx + 126, xx + 245);
13444 xx[248] = xx[259] + xx[246];
13445 xx[251] = xx[258] + xx[245];
13446 xx[255] = xx[248] * xx[35] - xx[251] * xx[32];
13447 xx[258] = xx[131] * xx[32] + xx[135] * xx[35];
13448 xx[259] = xx[80] * xx[258] * xx[35];
13449 xx[260] = xx[80] * xx[35] * xx[255] - (xx[248] - xx[259]) - xx[135];
13450 xx[248] = xx[80] * xx[258] * xx[32];
13451 xx[258] = xx[251] + xx[80] * xx[32] * xx[255] + xx[248] - xx[131];
13452 xx[251] = xx[15] * xx[258];
13453 xx[255] = xx[15] * xx[260];
13454 xx[261] = xx[3] * xx[258] - xx[260] * xx[7];
13455 xx[263] = - xx[251];
13456 xx[264] = xx[255];
13457 xx[265] = xx[261];
13458 pm_math_cross3(xx + 139, xx + 263, xx + 271);
13459 xx[283] = - (xx[31] - xx[33]);
13460 xx[284] = xx[46];
13461 xx[285] = xx[47];
13462 xx[286] = xx[48];
13463 pm_math_quatCompose(xx + 283, xx + 150, xx + 287);
13464 pm_math_quatCompose(xx + 287, xx + 183, xx + 291);
13465 xx[31] = xx[4] * xx[186];
13466 xx[33] = xx[4] * xx[184] + xx[185];
13467 xx[46] = xx[31];
13468 xx[47] = xx[186];
13469 xx[48] = - xx[33];
13470 pm_math_cross3(xx + 184, xx + 46, xx + 263);
13471 xx[46] = xx[183] * xx[186];
13472 xx[300] = xx[22] + (xx[263] - xx[183] * xx[31]) * xx[80];
13473 xx[301] = xx[80] * (xx[264] - xx[46]) - xx[4];
13474 xx[302] = xx[80] * (xx[265] + xx[183] * xx[33]);
13475 pm_math_cross3(xx + 300, xx + 84, xx + 263);
13476 pm_math_quatXform(xx + 291, xx + 263, xx + 300);
13477 xx[33] = - (xx[244] * xx[4]);
13478 xx[263] = xx[33];
13479 xx[264] = - xx[244];
13480 xx[265] = xx[237] + xx[234] * xx[4];
13481 pm_math_quatXform(xx + 150, xx + 263, xx + 303);
13482 pm_math_quatXform(xx + 150, xx + 167, xx + 263);
13483 xx[306] = xx[303] + xx[263];
13484 xx[307] = xx[304] + xx[264];
13485 xx[308] = xx[305] + xx[265];
13486 pm_math_quatXform(xx + 283, xx + 306, xx + 303);
13487 xx[47] = xx[184] - xx[4] * xx[185];
13488 xx[306] = - xx[186];
13489 xx[307] = xx[31];
13490 xx[308] = xx[47];
13491 pm_math_cross3(xx + 184, xx + 306, xx + 309);
13492 xx[306] = xx[4] + (xx[46] + xx[309]) * xx[80];
13493 xx[307] = xx[22] + xx[80] * (xx[310] - xx[4] * xx[46]);
13494 xx[308] = xx[80] * (xx[311] - xx[183] * xx[47]);
13495 pm_math_cross3(xx + 306, xx + 84, xx + 46);
13496 pm_math_quatXform(xx + 291, xx + 46, xx + 306);
13497 xx[46] = xx[244];
13498 xx[47] = xx[33];
13499 xx[48] = xx[237] * xx[4] - xx[234];
13500 pm_math_quatXform(xx + 150, xx + 46, xx + 309);
13501 pm_math_quatXform(xx + 150, xx + 176, xx + 46);
13502 xx[316] = xx[309] + xx[46];
13503 xx[317] = xx[310] + xx[47];
13504 xx[318] = xx[311] + xx[48];
13505 pm_math_quatXform(xx + 283, xx + 316, xx + 309);
13506 xx[316] = xx[80] * (xx[184] * xx[186] - xx[183] * xx[185]);
13507 xx[317] = (xx[183] * xx[184] + xx[185] * xx[186]) * xx[80];
13508 xx[318] = xx[22] - (xx[184] * xx[184] + xx[185] * xx[185]) * xx[80];
13509 pm_math_cross3(xx + 316, xx + 84, xx + 183);
13510 pm_math_quatXform(xx + 291, xx + 183, xx + 316);
13511 xx[183] = xx[64];
13512 xx[184] = xx[69];
13513 xx[185] = xx[75];
13514 xx[31] = xx[234] * xx[70];
13515 xx[33] = xx[237] * xx[70];
13516 xx[64] = xx[234] * xx[26] + xx[68] * xx[237];
13517 xx[291] = xx[31];
13518 xx[292] = xx[33];
13519 xx[293] = - xx[64];
13520 pm_math_cross3(xx + 183, xx + 291, xx + 294);
13521 xx[69] = xx[117] * xx[70];
13522 xx[75] = xx[119] * xx[70];
13523 xx[186] = xx[117] * xx[26] + xx[68] * xx[119];
13524 xx[291] = xx[69];
13525 xx[292] = xx[75];
13526 xx[293] = - xx[186];
13527 pm_math_cross3(xx + 183, xx + 291, xx + 320);
13528 xx[244] = xx[80] * (xx[320] + xx[69] * xx[24]);
13529 xx[69] = (xx[75] * xx[24] + xx[321]) * xx[80];
13530 xx[75] = (xx[322] - xx[186] * xx[24]) * xx[80];
13531 xx[291] = xx[80] * (xx[294] + xx[31] * xx[24]) + xx[244] - xx[237] - xx[119];
13532 xx[292] = xx[234] + xx[80] * (xx[295] + xx[33] * xx[24]) + xx[69] + xx[117];
13533 xx[293] = (xx[296] - xx[64] * xx[24]) * xx[80] + xx[75];
13534 pm_math_quatXform(xx + 283, xx + 291, xx + 294);
13535 pm_math_quatCompose(xx + 287, xx + 154, xx + 320);
13536 pm_math_quatCompose(xx + 320, xx + 179, xx + 329);
13537 xx[31] = xx[136] * xx[136];
13538 xx[33] = xx[137] * xx[137];
13539 xx[64] = xx[136] * xx[134];
13540 xx[179] = xx[133] * xx[137];
13541 xx[180] = xx[133] * xx[136];
13542 xx[181] = xx[137] * xx[134];
13543 xx[291] = xx[22] - (xx[31] + xx[33]) * xx[80];
13544 xx[292] = xx[80] * (xx[64] - xx[179]);
13545 xx[293] = (xx[180] + xx[181]) * xx[80];
13546 pm_math_cross3(xx + 291, xx + 84, xx + 333);
13547 pm_math_quatXform(xx + 329, xx + 333, xx + 291);
13548 xx[333] = xx[42];
13549 xx[334] = xx[82];
13550 xx[335] = xx[99];
13551 xx[82] = xx[44] * xx[219];
13552 xx[99] = xx[83] * xx[100];
13553 xx[182] = xx[82] + xx[99];
13554 xx[186] = xx[219] * xx[42];
13555 xx[234] = xx[100] * xx[42];
13556 xx[336] = - xx[182];
13557 xx[337] = - xx[186];
13558 xx[338] = - xx[234];
13559 pm_math_cross3(xx + 333, xx + 336, xx + 339);
13560 xx[237] = xx[44] * xx[73];
13561 xx[274] = xx[83] * xx[74];
13562 xx[278] = xx[237] - xx[274];
13563 xx[279] = xx[73] * xx[42];
13564 xx[313] = xx[74] * xx[42];
13565 xx[336] = xx[278];
13566 xx[337] = xx[279];
13567 xx[338] = - xx[313];
13568 pm_math_cross3(xx + 333, xx + 336, xx + 342);
13569 xx[336] = (xx[278] * xx[40] + xx[342]) * xx[80];
13570 xx[278] = xx[80] * (xx[343] + xx[279] * xx[40]);
13571 xx[279] = (xx[344] - xx[313] * xx[40]) * xx[80];
13572 xx[342] = xx[80] * (xx[339] - xx[182] * xx[40]) + xx[336];
13573 xx[343] = xx[80] * (xx[340] - xx[186] * xx[40]) + xx[278] - xx[100] - xx[74];
13574 xx[344] = xx[219] + xx[80] * (xx[341] - xx[234] * xx[40]) + xx[279] - xx[73];
13575 pm_math_quatXform(xx + 287, xx + 342, xx + 337);
13576 xx[182] = xx[134] * xx[134];
13577 xx[186] = xx[136] * xx[137];
13578 xx[136] = xx[133] * xx[134];
13579 xx[340] = (xx[179] + xx[64]) * xx[80];
13580 xx[341] = xx[22] - (xx[33] + xx[182]) * xx[80];
13581 xx[342] = xx[80] * (xx[186] - xx[136]);
13582 pm_math_cross3(xx + 340, xx + 84, xx + 343);
13583 pm_math_quatXform(xx + 329, xx + 343, xx + 340);
13584 xx[33] = xx[44] * xx[103];
13585 xx[64] = xx[103] * xx[42];
13586 xx[133] = xx[64] - xx[99];
13587 xx[99] = xx[44] * xx[100];
13588 xx[343] = xx[33];
13589 xx[344] = xx[133];
13590 xx[345] = xx[99];
13591 pm_math_cross3(xx + 333, xx + 343, xx + 346);
13592 xx[134] = xx[44] * xx[72];
13593 xx[137] = xx[72] * xx[42];
13594 xx[179] = xx[274] - xx[137];
13595 xx[234] = xx[44] * xx[74];
13596 xx[343] = xx[134];
13597 xx[344] = - xx[179];
13598 xx[345] = xx[234];
13599 pm_math_cross3(xx + 333, xx + 343, xx + 349);
13600 xx[274] = xx[80] * (xx[349] + xx[134] * xx[40]);
13601 xx[134] = xx[80] * (xx[350] - xx[179] * xx[40]);
13602 xx[179] = (xx[234] * xx[40] + xx[351]) * xx[80];
13603 xx[343] = xx[100] + (xx[33] * xx[40] + xx[346]) * xx[80] + xx[274] + xx[74];
13604 xx[344] = (xx[133] * xx[40] + xx[347]) * xx[80] + xx[134];
13605 xx[345] = (xx[99] * xx[40] + xx[348]) * xx[80] + xx[179] - xx[103] - xx[72];
13606 pm_math_quatXform(xx + 287, xx + 343, xx + 346);
13607 xx[343] = xx[80] * (xx[181] - xx[180]);
13608 xx[344] = (xx[136] + xx[186]) * xx[80];
13609 xx[345] = xx[22] - (xx[182] + xx[31]) * xx[80];
13610 pm_math_cross3(xx + 343, xx + 84, xx + 180);
13611 pm_math_quatXform(xx + 329, xx + 180, xx + 343);
13612 xx[31] = xx[83] * xx[103];
13613 xx[33] = xx[83] * xx[219];
13614 xx[99] = xx[64] - xx[82];
13615 xx[180] = xx[31];
13616 xx[181] = xx[33];
13617 xx[182] = xx[99];
13618 pm_math_cross3(xx + 333, xx + 180, xx + 329);
13619 xx[64] = xx[83] * xx[72];
13620 xx[82] = xx[83] * xx[73];
13621 xx[100] = xx[137] + xx[237];
13622 xx[180] = xx[64];
13623 xx[181] = - xx[82];
13624 xx[182] = xx[100];
13625 pm_math_cross3(xx + 333, xx + 180, xx + 349);
13626 xx[133] = (xx[64] * xx[40] + xx[349]) * xx[80];
13627 xx[64] = xx[80] * (xx[350] - xx[82] * xx[40]);
13628 xx[82] = (xx[100] * xx[40] + xx[351]) * xx[80];
13629 xx[180] = (xx[31] * xx[40] + xx[329]) * xx[80] + xx[133] - xx[219] + xx[73];
13630 xx[181] = xx[103] + (xx[33] * xx[40] + xx[330]) * xx[80] + xx[64] + xx[72];
13631 xx[182] = (xx[99] * xx[40] + xx[331]) * xx[80] + xx[82];
13632 pm_math_quatXform(xx + 287, xx + 180, xx + 329);
13633 pm_math_quatCompose(xx + 320, xx + 215, xx + 349);
13634 xx[31] = xx[111] * xx[349] + xx[352] * xx[175];
13635 xx[33] = xx[111] * xx[350] - xx[351] * xx[175];
13636 xx[99] = xx[111] * xx[351] + xx[350] * xx[175];
13637 xx[100] = xx[111] * xx[352] - xx[349] * xx[175];
13638 xx[353] = xx[31];
13639 xx[354] = xx[33];
13640 xx[355] = xx[99];
13641 xx[356] = xx[100];
13642 xx[103] = xx[57] * xx[175];
13643 xx[136] = xx[80] * xx[111] * xx[103];
13644 xx[111] = xx[80] * xx[103] * xx[175] - xx[57];
13645 xx[180] = xx[74] * xx[136] + xx[55];
13646 xx[181] = xx[106] + xx[74] * xx[111];
13647 xx[182] = xx[73] * xx[111] - xx[72] * xx[136];
13648 pm_math_quatXform(xx + 353, xx + 180, xx + 357);
13649 xx[180] = - (xx[63] * xx[189]);
13650 xx[181] = xx[63] * xx[198] - xx[60];
13651 xx[182] = xx[57] * xx[189];
13652 pm_math_quatXform(xx + 215, xx + 180, xx + 360);
13653 xx[103] = xx[67] * xx[110];
13654 xx[111] = xx[138] * xx[67];
13655 xx[136] = xx[80] * (xx[103] * xx[174] - xx[111] * xx[173]);
13656 xx[137] = (xx[103] * xx[110] + xx[138] * xx[111]) * xx[80];
13657 xx[175] = (xx[111] * xx[174] + xx[103] * xx[173]) * xx[80];
13658 xx[180] = xx[360] + xx[136];
13659 xx[181] = xx[361] + xx[137] - xx[67];
13660 xx[182] = xx[362] - xx[175];
13661 pm_math_quatXform(xx + 320, xx + 180, xx + 360);
13662 xx[180] = xx[33];
13663 xx[181] = xx[99];
13664 xx[182] = xx[100];
13665 xx[103] = xx[72] * xx[100];
13666 xx[111] = xx[73] * xx[100];
13667 xx[100] = xx[72] * xx[33] - xx[99] * xx[73];
13668 xx[363] = - xx[103];
13669 xx[364] = xx[111];
13670 xx[365] = xx[100];
13671 pm_math_cross3(xx + 180, xx + 363, xx + 369);
13672 xx[33] = xx[80] * (xx[199] - xx[187]) - xx[87];
13673 xx[99] = (xx[188] + xx[193]) * xx[80] - xx[90];
13674 xx[180] = xx[352] * xx[99];
13675 xx[181] = xx[33] * xx[352];
13676 xx[182] = xx[350] * xx[99] - xx[33] * xx[351];
13677 xx[186] = - xx[180];
13678 xx[187] = xx[181];
13679 xx[188] = xx[182];
13680 pm_math_cross3(xx + 350, xx + 186, xx + 363);
13681 xx[186] = state[66] + xx[776];
13682 xx[187] = xx[186] * xx[2];
13683 xx[188] = cos(xx[187]);
13684 xx[189] = xx[188] * xx[125];
13685 xx[193] = sin(xx[187]);
13686 xx[187] = xx[225] * xx[193];
13687 xx[198] = - (xx[241] * xx[188] - xx[193] * xx[242]);
13688 xx[199] = xx[241] * xx[193] + xx[188] * xx[242];
13689 xx[219] = xx[225] * xx[188] - xx[193] * xx[125];
13690 xx[375] = - (xx[189] + xx[187]);
13691 xx[376] = xx[198];
13692 xx[377] = xx[199];
13693 xx[378] = xx[219];
13694 xx[380] = xx[250];
13695 xx[381] = xx[253];
13696 xx[382] = xx[252];
13697 xx[383] = xx[249];
13698 pm_math_quatDeriv(xx + 380, xx + 777, xx + 384);
13699 xx[234] = xx[249] + xx[387];
13700 xx[237] = xx[250] + xx[384];
13701 xx[249] = xx[253] + xx[385];
13702 xx[250] = xx[252] + xx[386];
13703 xx[252] = sqrt(xx[237] * xx[237] + xx[249] * xx[249] + xx[250] * xx[250] + xx
13704 [234] * xx[234]);
13705 if (xx[28] > xx[252])
13706 xx[252] = xx[28];
13707 xx[253] = xx[234] / xx[252];
13708 xx[234] = xx[237] / xx[252];
13709 xx[237] = xx[21] * xx[253] - xx[25] * xx[234];
13710 xx[313] = xx[250] / xx[252];
13711 xx[250] = xx[249] / xx[252];
13712 xx[249] = xx[21] * xx[313] + xx[25] * xx[250];
13713 xx[252] = - xx[249];
13714 xx[332] = xx[25] * xx[313] - xx[21] * xx[250];
13715 xx[366] = - xx[332];
13716 xx[367] = xx[21] * xx[234] + xx[25] * xx[253];
13717 xx[372] = - xx[367];
13718 xx[380] = xx[237];
13719 xx[381] = xx[252];
13720 xx[382] = xx[366];
13721 xx[383] = xx[372];
13722 pm_math_quatCompose(xx + 375, xx + 380, xx + 384);
13723 xx[375] = (xx[332] * xx[237] + xx[249] * xx[367]) * xx[80];
13724 xx[376] = xx[80] * (xx[332] * xx[367] - xx[249] * xx[237]);
13725 xx[377] = xx[22] - (xx[249] * xx[249] + xx[332] * xx[332]) * xx[80];
13726 pm_math_cross3(xx + 375, xx + 267, xx + 388);
13727 pm_math_quatXform(xx + 384, xx + 388, xx + 375);
13728 pm_math_quatXform(xx + 380, xx + 126, xx + 384);
13729 xx[378] = xx[385] * xx[193] - xx[188] * xx[384];
13730 xx[387] = xx[266] * xx[193] - xx[270] * xx[188];
13731 xx[388] = xx[80] * xx[193] * xx[378] - (xx[385] + xx[80] * xx[387] * xx[193])
13732 + xx[266];
13733 xx[389] = xx[384] + xx[80] * xx[188] * xx[378] - xx[80] * xx[387] * xx[188] -
13734 xx[270];
13735 xx[378] = xx[389] * xx[242];
13736 xx[387] = xx[388] * xx[242];
13737 xx[390] = xx[389] * xx[125] + xx[225] * xx[388];
13738 xx[391] = xx[378];
13739 xx[392] = - xx[387];
13740 xx[393] = - xx[390];
13741 pm_math_cross3(xx + 275, xx + 391, xx + 394);
13742 xx[402] = - (xx[187] + xx[189]);
13743 xx[403] = xx[198];
13744 xx[404] = xx[199];
13745 xx[405] = xx[219];
13746 pm_math_quatCompose(xx + 402, xx + 380, xx + 416);
13747 pm_math_quatXform(xx + 416, xx + 280, xx + 275);
13748 pm_math_quatXform(xx + 380, xx + 167, xx + 391);
13749 pm_math_quatXform(xx + 402, xx + 391, xx + 406);
13750 pm_math_quatXform(xx + 416, xx + 297, xx + 391);
13751 pm_math_quatXform(xx + 380, xx + 176, xx + 420);
13752 pm_math_quatXform(xx + 402, xx + 420, xx + 380);
13753 xx[187] = xx[102] * xx[419];
13754 xx[189] = xx[102] * xx[417] + xx[123] * xx[418];
13755 xx[420] = - xx[187];
13756 xx[421] = - (xx[123] * xx[419]);
13757 xx[422] = xx[189];
13758 pm_math_cross3(xx + 417, xx + 420, xx + 423);
13759 xx[420] = xx[252];
13760 xx[421] = xx[366];
13761 xx[422] = xx[372];
13762 xx[198] = xx[117] * xx[367];
13763 xx[199] = xx[119] * xx[367];
13764 xx[219] = xx[117] * xx[249] + xx[332] * xx[119];
13765 xx[426] = xx[198];
13766 xx[427] = xx[199];
13767 xx[428] = - xx[219];
13768 pm_math_cross3(xx + 420, xx + 426, xx + 429);
13769 xx[420] = xx[80] * (xx[429] + xx[198] * xx[237]) - xx[119];
13770 xx[421] = xx[117] + (xx[199] * xx[237] + xx[430]) * xx[80];
13771 xx[422] = (xx[431] - xx[219] * xx[237]) * xx[80];
13772 pm_math_quatXform(xx + 402, xx + 420, xx + 426);
13773 xx[198] = state[45] + xx[768];
13774 xx[199] = xx[198] * xx[2];
13775 xx[219] = sin(xx[199]);
13776 xx[237] = xx[62] * xx[219];
13777 xx[249] = cos(xx[199]);
13778 xx[199] = xx[62] * xx[249];
13779 xx[252] = xx[237] - xx[199];
13780 xx[332] = xx[56] * xx[249];
13781 xx[249] = xx[56] * xx[219];
13782 xx[219] = xx[332] + xx[249];
13783 xx[366] = - xx[219];
13784 xx[367] = xx[249] - xx[332];
13785 xx[249] = xx[237] + xx[199];
13786 xx[199] = - xx[249];
13787 xx[429] = xx[252];
13788 xx[430] = xx[366];
13789 xx[431] = xx[367];
13790 xx[432] = xx[199];
13791 pm_math_quatCompose(xx + 215, xx + 429, xx + 433);
13792 pm_math_quatCompose(xx + 154, xx + 433, xx + 437);
13793 pm_math_quatCompose(xx + 150, xx + 437, xx + 441);
13794 pm_math_quatCompose(xx + 146, xx + 441, xx + 447);
13795 xx[420] = xx[80] * (xx[442] * xx[444] - xx[441] * xx[443]);
13796 xx[421] = (xx[441] * xx[442] + xx[443] * xx[444]) * xx[80];
13797 xx[422] = xx[22] - (xx[442] * xx[442] + xx[443] * xx[443]) * xx[80];
13798 pm_math_cross3(xx + 420, xx + 84, xx + 441);
13799 pm_math_quatXform(xx + 447, xx + 441, xx + 420);
13800 pm_math_quatXform(xx + 429, xx + 324, xx + 441);
13801 xx[237] = xx[243] - xx[441];
13802 xx[332] = xx[262] - xx[443];
13803 xx[447] = xx[237];
13804 xx[448] = - xx[442];
13805 xx[449] = xx[332];
13806 pm_math_quatXform(xx + 215, xx + 447, xx + 452);
13807 xx[372] = xx[452] - xx[236];
13808 xx[383] = xx[453] + xx[200];
13809 xx[397] = xx[454] - xx[233];
13810 xx[452] = xx[372];
13811 xx[453] = xx[383];
13812 xx[454] = xx[397];
13813 pm_math_quatXform(xx + 154, xx + 452, xx + 459);
13814 xx[398] = xx[459] + xx[220];
13815 xx[411] = xx[460] + xx[235];
13816 xx[412] = xx[461] + xx[238];
13817 xx[452] = xx[398];
13818 xx[453] = xx[411];
13819 xx[454] = xx[412];
13820 pm_math_quatXform(xx + 150, xx + 452, xx + 459);
13821 xx[441] = xx[460] + xx[246];
13822 xx[443] = xx[459] + xx[245];
13823 xx[444] = xx[441] * xx[35] - xx[443] * xx[32];
13824 xx[450] = xx[80] * xx[35] * xx[444] - (xx[441] - xx[259]) - xx[135];
13825 xx[441] = xx[443] + xx[80] * xx[32] * xx[444] + xx[248] - xx[131];
13826 xx[443] = xx[15] * xx[441];
13827 xx[444] = xx[15] * xx[450];
13828 xx[452] = xx[3] * xx[441] - xx[450] * xx[7];
13829 xx[453] = - xx[443];
13830 xx[454] = xx[444];
13831 xx[455] = xx[452];
13832 pm_math_cross3(xx + 139, xx + 453, xx + 459);
13833 pm_math_quatCompose(xx + 287, xx + 437, xx + 464);
13834 xx[453] = xx[4] * xx[440];
13835 xx[454] = xx[4] * xx[438] + xx[439];
13836 xx[468] = xx[453];
13837 xx[469] = xx[440];
13838 xx[470] = - xx[454];
13839 pm_math_cross3(xx + 438, xx + 468, xx + 474);
13840 xx[455] = xx[437] * xx[440];
13841 xx[468] = xx[22] + (xx[474] - xx[437] * xx[453]) * xx[80];
13842 xx[469] = xx[80] * (xx[475] - xx[455]) - xx[4];
13843 xx[470] = xx[80] * (xx[476] + xx[437] * xx[454]);
13844 pm_math_cross3(xx + 468, xx + 84, xx + 474);
13845 pm_math_quatXform(xx + 464, xx + 474, xx + 468);
13846 xx[454] = - (xx[412] * xx[4]);
13847 xx[474] = xx[454];
13848 xx[475] = - xx[412];
13849 xx[476] = xx[411] + xx[398] * xx[4];
13850 pm_math_quatXform(xx + 150, xx + 474, xx + 477);
13851 xx[474] = xx[477] + xx[263];
13852 xx[475] = xx[478] + xx[264];
13853 xx[476] = xx[479] + xx[265];
13854 pm_math_quatXform(xx + 283, xx + 474, xx + 477);
13855 xx[471] = xx[438] - xx[4] * xx[439];
13856 xx[474] = - xx[440];
13857 xx[475] = xx[453];
13858 xx[476] = xx[471];
13859 pm_math_cross3(xx + 438, xx + 474, xx + 480);
13860 xx[474] = xx[4] + (xx[455] + xx[480]) * xx[80];
13861 xx[475] = xx[22] + xx[80] * (xx[481] - xx[4] * xx[455]);
13862 xx[476] = xx[80] * (xx[482] - xx[437] * xx[471]);
13863 pm_math_cross3(xx + 474, xx + 84, xx + 480);
13864 pm_math_quatXform(xx + 464, xx + 480, xx + 474);
13865 xx[480] = xx[412];
13866 xx[481] = xx[454];
13867 xx[482] = xx[411] * xx[4] - xx[398];
13868 pm_math_quatXform(xx + 150, xx + 480, xx + 453);
13869 xx[480] = xx[453] + xx[46];
13870 xx[481] = xx[454] + xx[47];
13871 xx[482] = xx[455] + xx[48];
13872 pm_math_quatXform(xx + 283, xx + 480, xx + 453);
13873 xx[480] = xx[80] * (xx[438] * xx[440] - xx[437] * xx[439]);
13874 xx[481] = (xx[437] * xx[438] + xx[439] * xx[440]) * xx[80];
13875 xx[482] = xx[22] - (xx[438] * xx[438] + xx[439] * xx[439]) * xx[80];
13876 pm_math_cross3(xx + 480, xx + 84, xx + 437);
13877 pm_math_quatXform(xx + 464, xx + 437, xx + 480);
13878 xx[412] = xx[398] * xx[70];
13879 xx[437] = xx[411] * xx[70];
13880 xx[438] = xx[398] * xx[26] + xx[411] * xx[68];
13881 xx[464] = xx[412];
13882 xx[465] = xx[437];
13883 xx[466] = - xx[438];
13884 pm_math_cross3(xx + 183, xx + 464, xx + 483);
13885 xx[464] = xx[80] * (xx[483] + xx[412] * xx[24]) + xx[244] - xx[411] - xx[119];
13886 xx[465] = xx[398] + xx[80] * (xx[484] + xx[437] * xx[24]) + xx[69] + xx[117];
13887 xx[466] = (xx[485] - xx[438] * xx[24]) * xx[80] + xx[75];
13888 pm_math_quatXform(xx + 283, xx + 464, xx + 437);
13889 pm_math_quatCompose(xx + 320, xx + 433, xx + 464);
13890 xx[398] = xx[435] * xx[435];
13891 xx[411] = xx[436] * xx[436];
13892 xx[412] = xx[434] * xx[435];
13893 xx[440] = xx[433] * xx[436];
13894 xx[471] = xx[433] * xx[435];
13895 xx[472] = xx[434] * xx[436];
13896 xx[483] = xx[22] - (xx[398] + xx[411]) * xx[80];
13897 xx[484] = xx[80] * (xx[412] - xx[440]);
13898 xx[485] = (xx[471] + xx[472]) * xx[80];
13899 pm_math_cross3(xx + 483, xx + 84, xx + 486);
13900 pm_math_quatXform(xx + 464, xx + 486, xx + 483);
13901 xx[486] = xx[383] * xx[44];
13902 xx[487] = xx[397] * xx[83];
13903 xx[488] = xx[486] + xx[487];
13904 xx[489] = xx[383] * xx[42];
13905 xx[490] = xx[397] * xx[42];
13906 xx[491] = - xx[488];
13907 xx[492] = - xx[489];
13908 xx[493] = - xx[490];
13909 pm_math_cross3(xx + 333, xx + 491, xx + 494);
13910 xx[491] = xx[80] * (xx[494] - xx[488] * xx[40]) + xx[336];
13911 xx[492] = xx[80] * (xx[495] - xx[489] * xx[40]) + xx[278] - xx[397] - xx[74];
13912 xx[493] = xx[383] + xx[80] * (xx[496] - xx[490] * xx[40]) + xx[279] - xx[73];
13913 pm_math_quatXform(xx + 287, xx + 491, xx + 488);
13914 xx[491] = xx[434] * xx[434];
13915 xx[492] = xx[435] * xx[436];
13916 xx[435] = xx[433] * xx[434];
13917 xx[493] = (xx[440] + xx[412]) * xx[80];
13918 xx[494] = xx[22] - (xx[411] + xx[491]) * xx[80];
13919 xx[495] = xx[80] * (xx[492] - xx[435]);
13920 pm_math_cross3(xx + 493, xx + 84, xx + 496);
13921 pm_math_quatXform(xx + 464, xx + 496, xx + 493);
13922 xx[411] = xx[372] * xx[44];
13923 xx[412] = xx[372] * xx[42];
13924 xx[433] = xx[412] - xx[487];
13925 xx[434] = xx[397] * xx[44];
13926 xx[496] = xx[411];
13927 xx[497] = xx[433];
13928 xx[498] = xx[434];
13929 pm_math_cross3(xx + 333, xx + 496, xx + 503);
13930 xx[496] = xx[397] + (xx[411] * xx[40] + xx[503]) * xx[80] + xx[274] + xx[74];
13931 xx[497] = (xx[433] * xx[40] + xx[504]) * xx[80] + xx[134];
13932 xx[498] = (xx[434] * xx[40] + xx[505]) * xx[80] + xx[179] - xx[372] - xx[72];
13933 pm_math_quatXform(xx + 287, xx + 496, xx + 503);
13934 xx[496] = xx[80] * (xx[472] - xx[471]);
13935 xx[497] = (xx[435] + xx[492]) * xx[80];
13936 xx[498] = xx[22] - (xx[491] + xx[398]) * xx[80];
13937 pm_math_cross3(xx + 496, xx + 84, xx + 433);
13938 pm_math_quatXform(xx + 464, xx + 433, xx + 496);
13939 xx[397] = xx[372] * xx[83];
13940 xx[398] = xx[383] * xx[83];
13941 xx[411] = xx[412] - xx[486];
13942 xx[433] = xx[397];
13943 xx[434] = xx[398];
13944 xx[435] = xx[411];
13945 pm_math_cross3(xx + 333, xx + 433, xx + 464);
13946 xx[433] = (xx[397] * xx[40] + xx[464]) * xx[80] + xx[133] - xx[383] + xx[73];
13947 xx[434] = xx[372] + (xx[398] * xx[40] + xx[465]) * xx[80] + xx[64] + xx[72];
13948 xx[435] = (xx[411] * xx[40] + xx[466]) * xx[80] + xx[82];
13949 pm_math_quatXform(xx + 287, xx + 433, xx + 464);
13950 pm_math_quatCompose(xx + 349, xx + 429, xx + 433);
13951 xx[429] = xx[366];
13952 xx[430] = xx[367];
13953 xx[431] = xx[199];
13954 xx[199] = xx[63] * xx[367];
13955 xx[366] = xx[249] * xx[57] - xx[219] * xx[63];
13956 xx[372] = xx[57] * xx[367];
13957 xx[507] = - xx[199];
13958 xx[508] = xx[366];
13959 xx[509] = xx[372];
13960 pm_math_cross3(xx + 429, xx + 507, xx + 513);
13961 xx[507] = xx[80] * (xx[513] + xx[199] * xx[252]) - xx[57];
13962 xx[508] = xx[80] * (xx[514] - xx[366] * xx[252]);
13963 xx[509] = (xx[515] - xx[372] * xx[252]) * xx[80] - xx[63];
13964 pm_math_cross3(xx + 507, xx + 84, xx + 513);
13965 pm_math_quatXform(xx + 433, xx + 513, xx + 507);
13966 xx[513] = - (xx[63] * xx[442]);
13967 xx[514] = xx[57] * xx[332] - xx[63] * xx[237];
13968 xx[515] = xx[57] * xx[442];
13969 pm_math_quatXform(xx + 215, xx + 513, xx + 516);
13970 xx[513] = xx[516] + xx[136];
13971 xx[514] = xx[517] + xx[137] - xx[67];
13972 xx[515] = xx[518] - xx[175];
13973 pm_math_quatXform(xx + 320, xx + 513, xx + 516);
13974 xx[199] = xx[72] * xx[436];
13975 xx[237] = xx[73] * xx[435] - xx[72] * xx[434];
13976 xx[513] = xx[199];
13977 xx[514] = - (xx[73] * xx[436]);
13978 xx[515] = xx[237];
13979 pm_math_cross3(xx + 434, xx + 513, xx + 519);
13980 xx[332] = xx[249] * xx[254];
13981 xx[366] = xx[249] * xx[257];
13982 xx[249] = xx[257] * xx[367] - xx[219] * xx[254];
13983 xx[513] = xx[332];
13984 xx[514] = xx[366];
13985 xx[515] = xx[249];
13986 pm_math_cross3(xx + 429, xx + 513, xx + 522);
13987 xx[429] = xx[80] * (xx[522] + xx[332] * xx[252]) - xx[257];
13988 xx[430] = xx[254] + (xx[366] * xx[252] + xx[523]) * xx[80];
13989 xx[431] = (xx[249] * xx[252] + xx[524]) * xx[80];
13990 pm_math_quatXform(xx + 349, xx + 429, xx + 513);
13991 xx[219] = state[55] + xx[772];
13992 xx[249] = xx[219] * xx[2];
13993 xx[252] = cos(xx[249]);
13994 xx[332] = xx[224] * xx[252];
13995 xx[366] = sin(xx[249]);
13996 xx[249] = xx[366] * xx[256];
13997 xx[367] = - (xx[252] * xx[315] + xx[319] * xx[366]);
13998 xx[372] = xx[366] * xx[315] - xx[319] * xx[252];
13999 xx[383] = xx[224] * xx[366] + xx[252] * xx[256];
14000 xx[429] = xx[332] - xx[249];
14001 xx[430] = xx[367];
14002 xx[431] = xx[372];
14003 xx[432] = xx[383];
14004 xx[522] = xx[368];
14005 xx[523] = xx[374];
14006 xx[524] = xx[373];
14007 xx[525] = xx[328];
14008 pm_math_quatDeriv(xx + 522, xx + 773, xx + 526);
14009 xx[397] = xx[328] + xx[529];
14010 xx[328] = xx[368] + xx[526];
14011 xx[368] = xx[374] + xx[527];
14012 xx[374] = xx[373] + xx[528];
14013 xx[373] = sqrt(xx[328] * xx[328] + xx[368] * xx[368] + xx[374] * xx[374] + xx
14014 [397] * xx[397]);
14015 if (xx[28] > xx[373])
14016 xx[373] = xx[28];
14017 xx[398] = xx[397] / xx[373];
14018 xx[397] = xx[328] / xx[373];
14019 xx[328] = xx[21] * xx[398] - xx[25] * xx[397];
14020 xx[411] = xx[374] / xx[373];
14021 xx[374] = xx[368] / xx[373];
14022 xx[368] = xx[21] * xx[411] + xx[25] * xx[374];
14023 xx[373] = - xx[368];
14024 xx[412] = xx[25] * xx[411] - xx[21] * xx[374];
14025 xx[440] = - xx[412];
14026 xx[442] = xx[21] * xx[397] + xx[25] * xx[398];
14027 xx[467] = - xx[442];
14028 xx[522] = xx[328];
14029 xx[523] = xx[373];
14030 xx[524] = xx[440];
14031 xx[525] = xx[467];
14032 pm_math_quatCompose(xx + 429, xx + 522, xx + 526);
14033 xx[429] = (xx[412] * xx[328] + xx[368] * xx[442]) * xx[80];
14034 xx[430] = xx[80] * (xx[412] * xx[442] - xx[368] * xx[328]);
14035 xx[431] = xx[22] - (xx[368] * xx[368] + xx[412] * xx[412]) * xx[80];
14036 pm_math_cross3(xx + 429, xx + 267, xx + 537);
14037 pm_math_quatXform(xx + 526, xx + 537, xx + 429);
14038 pm_math_quatXform(xx + 522, xx + 126, xx + 526);
14039 xx[432] = xx[527] * xx[366] - xx[252] * xx[526];
14040 xx[471] = xx[409] * xx[252] + xx[410] * xx[366];
14041 xx[472] = xx[80] * xx[366] * xx[432] - (xx[527] + xx[80] * xx[471] * xx[366])
14042 + xx[410];
14043 xx[486] = xx[526] + xx[80] * xx[252] * xx[432] - xx[80] * xx[471] * xx[252] +
14044 xx[409];
14045 xx[432] = xx[486] * xx[319];
14046 xx[471] = xx[472] * xx[319];
14047 xx[487] = xx[486] * xx[224] - xx[472] * xx[256];
14048 xx[529] = - xx[432];
14049 xx[530] = xx[471];
14050 xx[531] = xx[487];
14051 pm_math_cross3(xx + 413, xx + 529, xx + 537);
14052 xx[540] = - (xx[249] - xx[332]);
14053 xx[541] = xx[367];
14054 xx[542] = xx[372];
14055 xx[543] = xx[383];
14056 pm_math_quatCompose(xx + 540, xx + 522, xx + 555);
14057 pm_math_quatXform(xx + 555, xx + 280, xx + 413);
14058 pm_math_quatXform(xx + 522, xx + 167, xx + 529);
14059 pm_math_quatXform(xx + 540, xx + 529, xx + 544);
14060 pm_math_quatXform(xx + 555, xx + 297, xx + 529);
14061 pm_math_quatXform(xx + 522, xx + 176, xx + 549);
14062 pm_math_quatXform(xx + 540, xx + 549, xx + 522);
14063 xx[249] = xx[102] * xx[558];
14064 xx[332] = xx[102] * xx[556] + xx[123] * xx[557];
14065 xx[549] = - xx[249];
14066 xx[550] = - (xx[123] * xx[558]);
14067 xx[551] = xx[332];
14068 pm_math_cross3(xx + 556, xx + 549, xx + 559);
14069 xx[549] = xx[373];
14070 xx[550] = xx[440];
14071 xx[551] = xx[467];
14072 xx[367] = xx[117] * xx[442];
14073 xx[372] = xx[119] * xx[442];
14074 xx[373] = xx[117] * xx[368] + xx[412] * xx[119];
14075 xx[562] = xx[367];
14076 xx[563] = xx[372];
14077 xx[564] = - xx[373];
14078 pm_math_cross3(xx + 549, xx + 562, xx + 565);
14079 xx[549] = xx[80] * (xx[565] + xx[367] * xx[328]) - xx[119];
14080 xx[550] = xx[117] + (xx[372] * xx[328] + xx[566]) * xx[80];
14081 xx[551] = (xx[567] - xx[373] * xx[328]) * xx[80];
14082 pm_math_quatXform(xx + 540, xx + 549, xx + 562);
14083 xx[328] = state[47] + xx[769];
14084 xx[367] = xx[328] * xx[2];
14085 xx[368] = cos(xx[367]);
14086 xx[372] = xx[312] * xx[368];
14087 xx[373] = sin(xx[367]);
14088 xx[367] = xx[312] * xx[373];
14089 xx[383] = xx[372] + xx[367];
14090 xx[412] = xx[379] * xx[373];
14091 xx[373] = xx[379] * xx[368];
14092 xx[368] = xx[412] - xx[373];
14093 xx[440] = xx[373] + xx[412];
14094 xx[373] = - xx[440];
14095 xx[412] = xx[367] - xx[372];
14096 xx[565] = - xx[383];
14097 xx[566] = xx[368];
14098 xx[567] = xx[373];
14099 xx[568] = xx[412];
14100 pm_math_quatCompose(xx + 215, xx + 565, xx + 569);
14101 pm_math_quatCompose(xx + 154, xx + 569, xx + 573);
14102 pm_math_quatCompose(xx + 150, xx + 573, xx + 577);
14103 pm_math_quatCompose(xx + 146, xx + 577, xx + 585);
14104 xx[549] = xx[80] * (xx[578] * xx[580] - xx[577] * xx[579]);
14105 xx[550] = (xx[577] * xx[578] + xx[579] * xx[580]) * xx[80];
14106 xx[551] = xx[22] - (xx[578] * xx[578] + xx[579] * xx[579]) * xx[80];
14107 pm_math_cross3(xx + 549, xx + 84, xx + 577);
14108 pm_math_quatXform(xx + 585, xx + 577, xx + 549);
14109 pm_math_quatXform(xx + 565, xx + 456, xx + 577);
14110 xx[367] = xx[314] + xx[577];
14111 xx[372] = xx[462] - xx[579];
14112 xx[579] = - xx[367];
14113 xx[580] = - xx[578];
14114 xx[581] = xx[372];
14115 pm_math_quatXform(xx + 215, xx + 579, xx + 585);
14116 xx[442] = xx[585] - xx[236];
14117 xx[467] = xx[586] + xx[200];
14118 xx[491] = xx[587] - xx[233];
14119 xx[585] = xx[442];
14120 xx[586] = xx[467];
14121 xx[587] = xx[491];
14122 pm_math_quatXform(xx + 154, xx + 585, xx + 588);
14123 xx[492] = xx[588] + xx[220];
14124 xx[499] = xx[589] + xx[235];
14125 xx[500] = xx[590] + xx[238];
14126 xx[585] = xx[492];
14127 xx[586] = xx[499];
14128 xx[587] = xx[500];
14129 pm_math_quatXform(xx + 150, xx + 585, xx + 588);
14130 xx[510] = xx[589] + xx[246];
14131 xx[525] = xx[588] + xx[245];
14132 xx[577] = xx[510] * xx[35] - xx[525] * xx[32];
14133 xx[582] = xx[80] * xx[35] * xx[577] - (xx[510] - xx[259]) - xx[135];
14134 xx[510] = xx[525] + xx[80] * xx[32] * xx[577] + xx[248] - xx[131];
14135 xx[525] = xx[510] * xx[15];
14136 xx[577] = xx[582] * xx[15];
14137 xx[583] = xx[510] * xx[3] - xx[582] * xx[7];
14138 xx[585] = - xx[525];
14139 xx[586] = xx[577];
14140 xx[587] = xx[583];
14141 pm_math_cross3(xx + 139, xx + 585, xx + 588);
14142 pm_math_quatCompose(xx + 287, xx + 573, xx + 602);
14143 xx[585] = xx[4] * xx[576];
14144 xx[586] = xx[4] * xx[574] + xx[575];
14145 xx[591] = xx[585];
14146 xx[592] = xx[576];
14147 xx[593] = - xx[586];
14148 pm_math_cross3(xx + 574, xx + 591, xx + 598);
14149 xx[587] = xx[573] * xx[576];
14150 xx[591] = xx[22] + (xx[598] - xx[573] * xx[585]) * xx[80];
14151 xx[592] = xx[80] * (xx[599] - xx[587]) - xx[4];
14152 xx[593] = xx[80] * (xx[600] + xx[573] * xx[586]);
14153 pm_math_cross3(xx + 591, xx + 84, xx + 598);
14154 pm_math_quatXform(xx + 602, xx + 598, xx + 591);
14155 xx[586] = - (xx[500] * xx[4]);
14156 xx[598] = xx[586];
14157 xx[599] = - xx[500];
14158 xx[600] = xx[499] + xx[492] * xx[4];
14159 pm_math_quatXform(xx + 150, xx + 598, xx + 606);
14160 xx[598] = xx[606] + xx[263];
14161 xx[599] = xx[607] + xx[264];
14162 xx[600] = xx[608] + xx[265];
14163 pm_math_quatXform(xx + 283, xx + 598, xx + 606);
14164 xx[598] = xx[574] - xx[4] * xx[575];
14165 xx[610] = - xx[576];
14166 xx[611] = xx[585];
14167 xx[612] = xx[598];
14168 pm_math_cross3(xx + 574, xx + 610, xx + 613);
14169 xx[610] = xx[4] + (xx[587] + xx[613]) * xx[80];
14170 xx[611] = xx[22] + xx[80] * (xx[614] - xx[4] * xx[587]);
14171 xx[612] = xx[80] * (xx[615] - xx[573] * xx[598]);
14172 pm_math_cross3(xx + 610, xx + 84, xx + 598);
14173 pm_math_quatXform(xx + 602, xx + 598, xx + 610);
14174 xx[598] = xx[500];
14175 xx[599] = xx[586];
14176 xx[600] = xx[499] * xx[4] - xx[492];
14177 pm_math_quatXform(xx + 150, xx + 598, xx + 585);
14178 xx[598] = xx[585] + xx[46];
14179 xx[599] = xx[586] + xx[47];
14180 xx[600] = xx[587] + xx[48];
14181 pm_math_quatXform(xx + 283, xx + 598, xx + 585);
14182 xx[598] = xx[80] * (xx[574] * xx[576] - xx[573] * xx[575]);
14183 xx[599] = (xx[573] * xx[574] + xx[575] * xx[576]) * xx[80];
14184 xx[600] = xx[22] - (xx[574] * xx[574] + xx[575] * xx[575]) * xx[80];
14185 pm_math_cross3(xx + 598, xx + 84, xx + 573);
14186 pm_math_quatXform(xx + 602, xx + 573, xx + 598);
14187 xx[500] = xx[492] * xx[70];
14188 xx[573] = xx[499] * xx[70];
14189 xx[574] = xx[492] * xx[26] + xx[499] * xx[68];
14190 xx[602] = xx[500];
14191 xx[603] = xx[573];
14192 xx[604] = - xx[574];
14193 pm_math_cross3(xx + 183, xx + 602, xx + 613);
14194 xx[602] = xx[80] * (xx[613] + xx[500] * xx[24]) + xx[244] - xx[499] - xx[119];
14195 xx[603] = xx[492] + xx[80] * (xx[614] + xx[573] * xx[24]) + xx[69] + xx[117];
14196 xx[604] = (xx[615] - xx[574] * xx[24]) * xx[80] + xx[75];
14197 pm_math_quatXform(xx + 283, xx + 602, xx + 573);
14198 pm_math_quatCompose(xx + 320, xx + 569, xx + 602);
14199 xx[492] = xx[571] * xx[571];
14200 xx[499] = xx[572] * xx[572];
14201 xx[500] = xx[570] * xx[571];
14202 xx[576] = xx[569] * xx[572];
14203 xx[613] = xx[569] * xx[571];
14204 xx[614] = xx[570] * xx[572];
14205 xx[615] = xx[22] - (xx[492] + xx[499]) * xx[80];
14206 xx[616] = xx[80] * (xx[500] - xx[576]);
14207 xx[617] = (xx[613] + xx[614]) * xx[80];
14208 pm_math_cross3(xx + 615, xx + 84, xx + 618);
14209 pm_math_quatXform(xx + 602, xx + 618, xx + 615);
14210 xx[618] = xx[467] * xx[44];
14211 xx[619] = xx[491] * xx[83];
14212 xx[620] = xx[618] + xx[619];
14213 xx[621] = xx[467] * xx[42];
14214 xx[622] = xx[491] * xx[42];
14215 xx[623] = - xx[620];
14216 xx[624] = - xx[621];
14217 xx[625] = - xx[622];
14218 pm_math_cross3(xx + 333, xx + 623, xx + 626);
14219 xx[623] = xx[80] * (xx[626] - xx[620] * xx[40]) + xx[336];
14220 xx[624] = xx[80] * (xx[627] - xx[621] * xx[40]) + xx[278] - xx[491] - xx[74];
14221 xx[625] = xx[467] + xx[80] * (xx[628] - xx[622] * xx[40]) + xx[279] - xx[73];
14222 pm_math_quatXform(xx + 287, xx + 623, xx + 620);
14223 xx[623] = xx[570] * xx[570];
14224 xx[624] = xx[571] * xx[572];
14225 xx[571] = xx[569] * xx[570];
14226 xx[625] = (xx[576] + xx[500]) * xx[80];
14227 xx[626] = xx[22] - (xx[499] + xx[623]) * xx[80];
14228 xx[627] = xx[80] * (xx[624] - xx[571]);
14229 pm_math_cross3(xx + 625, xx + 84, xx + 628);
14230 pm_math_quatXform(xx + 602, xx + 628, xx + 625);
14231 xx[499] = xx[442] * xx[44];
14232 xx[500] = xx[442] * xx[42];
14233 xx[569] = xx[500] - xx[619];
14234 xx[570] = xx[491] * xx[44];
14235 xx[628] = xx[499];
14236 xx[629] = xx[569];
14237 xx[630] = xx[570];
14238 pm_math_cross3(xx + 333, xx + 628, xx + 631);
14239 xx[628] = xx[491] + (xx[499] * xx[40] + xx[631]) * xx[80] + xx[274] + xx[74];
14240 xx[629] = (xx[569] * xx[40] + xx[632]) * xx[80] + xx[134];
14241 xx[630] = (xx[570] * xx[40] + xx[633]) * xx[80] + xx[179] - xx[442] - xx[72];
14242 pm_math_quatXform(xx + 287, xx + 628, xx + 631);
14243 xx[628] = xx[80] * (xx[614] - xx[613]);
14244 xx[629] = (xx[571] + xx[624]) * xx[80];
14245 xx[630] = xx[22] - (xx[623] + xx[492]) * xx[80];
14246 pm_math_cross3(xx + 628, xx + 84, xx + 569);
14247 pm_math_quatXform(xx + 602, xx + 569, xx + 628);
14248 xx[491] = xx[442] * xx[83];
14249 xx[492] = xx[467] * xx[83];
14250 xx[499] = xx[500] - xx[618];
14251 xx[569] = xx[491];
14252 xx[570] = xx[492];
14253 xx[571] = xx[499];
14254 pm_math_cross3(xx + 333, xx + 569, xx + 602);
14255 xx[569] = (xx[491] * xx[40] + xx[602]) * xx[80] + xx[133] - xx[467] + xx[73];
14256 xx[570] = xx[442] + (xx[492] * xx[40] + xx[603]) * xx[80] + xx[64] + xx[72];
14257 xx[571] = (xx[499] * xx[40] + xx[604]) * xx[80] + xx[82];
14258 pm_math_quatXform(xx + 287, xx + 569, xx + 602);
14259 pm_math_quatCompose(xx + 349, xx + 565, xx + 569);
14260 xx[565] = xx[368];
14261 xx[566] = xx[373];
14262 xx[567] = xx[412];
14263 xx[373] = xx[440] * xx[63];
14264 xx[442] = xx[63] * xx[368] - xx[57] * xx[412];
14265 xx[467] = xx[440] * xx[57];
14266 xx[634] = xx[373];
14267 xx[635] = xx[442];
14268 xx[636] = - xx[467];
14269 pm_math_cross3(xx + 565, xx + 634, xx + 639);
14270 xx[634] = xx[80] * (xx[639] + xx[383] * xx[373]) - xx[57];
14271 xx[635] = xx[80] * (xx[640] + xx[383] * xx[442]);
14272 xx[636] = (xx[641] - xx[383] * xx[467]) * xx[80] - xx[63];
14273 pm_math_cross3(xx + 634, xx + 84, xx + 639);
14274 pm_math_quatXform(xx + 569, xx + 639, xx + 634);
14275 xx[639] = - (xx[63] * xx[578]);
14276 xx[640] = xx[63] * xx[367] + xx[57] * xx[372];
14277 xx[641] = xx[57] * xx[578];
14278 pm_math_quatXform(xx + 215, xx + 639, xx + 644);
14279 xx[639] = xx[644] + xx[136];
14280 xx[640] = xx[645] + xx[137] - xx[67];
14281 xx[641] = xx[646] - xx[175];
14282 pm_math_quatXform(xx + 320, xx + 639, xx + 644);
14283 xx[367] = xx[72] * xx[572];
14284 xx[372] = xx[72] * xx[570] - xx[73] * xx[571];
14285 xx[639] = - xx[367];
14286 xx[640] = xx[73] * xx[572];
14287 xx[641] = xx[372];
14288 pm_math_cross3(xx + 570, xx + 639, xx + 649);
14289 xx[373] = xx[327] * xx[412];
14290 xx[442] = xx[401] * xx[412];
14291 xx[412] = xx[327] * xx[368] + xx[440] * xx[401];
14292 xx[639] = - xx[373];
14293 xx[640] = xx[442];
14294 xx[641] = xx[412];
14295 pm_math_cross3(xx + 565, xx + 639, xx + 652);
14296 xx[565] = xx[401] + xx[80] * (xx[652] + xx[383] * xx[373]);
14297 xx[566] = xx[327] + (xx[653] - xx[383] * xx[442]) * xx[80];
14298 xx[567] = (xx[654] - xx[383] * xx[412]) * xx[80];
14299 pm_math_quatXform(xx + 349, xx + 565, xx + 639);
14300 xx[368] = state[77] + xx[780];
14301 xx[373] = xx[368] * xx[2];
14302 xx[383] = cos(xx[373]);
14303 xx[412] = xx[383] * xx[400];
14304 xx[440] = sin(xx[373]);
14305 xx[373] = xx[451] * xx[440];
14306 xx[442] = - (xx[501] * xx[383] - xx[440] * xx[502]);
14307 xx[467] = xx[501] * xx[440] + xx[383] * xx[502];
14308 xx[491] = xx[440] * xx[400] + xx[451] * xx[383];
14309 xx[565] = xx[412] - xx[373];
14310 xx[566] = xx[442];
14311 xx[567] = xx[467];
14312 xx[568] = xx[491];
14313 xx[652] = xx[512];
14314 xx[653] = xx[534];
14315 xx[654] = xx[533];
14316 xx[655] = xx[511];
14317 pm_math_quatDeriv(xx + 652, xx + 781, xx + 656);
14318 xx[492] = xx[511] + xx[659];
14319 xx[499] = xx[512] + xx[656];
14320 xx[500] = xx[534] + xx[657];
14321 xx[511] = xx[533] + xx[658];
14322 xx[512] = sqrt(xx[499] * xx[499] + xx[500] * xx[500] + xx[511] * xx[511] + xx
14323 [492] * xx[492]);
14324 if (xx[28] > xx[512])
14325 xx[512] = xx[28];
14326 xx[533] = xx[492] / xx[512];
14327 xx[492] = xx[499] / xx[512];
14328 xx[499] = xx[21] * xx[533] - xx[25] * xx[492];
14329 xx[534] = xx[511] / xx[512];
14330 xx[511] = xx[500] / xx[512];
14331 xx[500] = xx[21] * xx[534] + xx[25] * xx[511];
14332 xx[512] = - xx[500];
14333 xx[576] = xx[25] * xx[534] - xx[21] * xx[511];
14334 xx[578] = - xx[576];
14335 xx[605] = xx[21] * xx[492] + xx[25] * xx[533];
14336 xx[613] = - xx[605];
14337 xx[652] = xx[499];
14338 xx[653] = xx[512];
14339 xx[654] = xx[578];
14340 xx[655] = xx[613];
14341 pm_math_quatCompose(xx + 565, xx + 652, xx + 656);
14342 xx[565] = (xx[576] * xx[499] + xx[605] * xx[500]) * xx[80];
14343 xx[566] = xx[80] * (xx[576] * xx[605] - xx[499] * xx[500]);
14344 xx[567] = xx[22] - (xx[500] * xx[500] + xx[576] * xx[576]) * xx[80];
14345 pm_math_cross3(xx + 565, xx + 267, xx + 660);
14346 pm_math_quatXform(xx + 656, xx + 660, xx + 565);
14347 pm_math_quatXform(xx + 652, xx + 126, xx + 656);
14348 xx[568] = xx[657] * xx[440] - xx[383] * xx[656];
14349 xx[614] = xx[547] * xx[383] + xx[548] * xx[440];
14350 xx[618] = xx[80] * xx[440] * xx[568] - (xx[657] - xx[80] * xx[614] * xx[440])
14351 - xx[548];
14352 xx[619] = xx[656] + xx[80] * xx[383] * xx[568] + xx[80] * xx[614] * xx[383] -
14353 xx[547];
14354 xx[568] = xx[619] * xx[502];
14355 xx[614] = xx[618] * xx[502];
14356 xx[623] = xx[619] * xx[400] - xx[618] * xx[451];
14357 xx[659] = xx[568];
14358 xx[660] = - xx[614];
14359 xx[661] = xx[623];
14360 pm_math_cross3(xx + 552, xx + 659, xx + 662);
14361 xx[676] = - (xx[373] - xx[412]);
14362 xx[677] = xx[442];
14363 xx[678] = xx[467];
14364 xx[679] = xx[491];
14365 pm_math_quatCompose(xx + 676, xx + 652, xx + 692);
14366 pm_math_quatXform(xx + 692, xx + 280, xx + 552);
14367 pm_math_quatXform(xx + 652, xx + 167, xx + 659);
14368 pm_math_quatXform(xx + 676, xx + 659, xx + 665);
14369 pm_math_quatXform(xx + 692, xx + 297, xx + 659);
14370 pm_math_quatXform(xx + 652, xx + 176, xx + 681);
14371 pm_math_quatXform(xx + 676, xx + 681, xx + 652);
14372 xx[373] = xx[102] * xx[695];
14373 xx[412] = xx[102] * xx[693] + xx[123] * xx[694];
14374 xx[681] = - xx[373];
14375 xx[682] = - (xx[123] * xx[695]);
14376 xx[683] = xx[412];
14377 pm_math_cross3(xx + 693, xx + 681, xx + 686);
14378 xx[681] = xx[512];
14379 xx[682] = xx[578];
14380 xx[683] = xx[613];
14381 xx[442] = xx[117] * xx[605];
14382 xx[467] = xx[119] * xx[605];
14383 xx[491] = xx[117] * xx[500] + xx[576] * xx[119];
14384 xx[696] = xx[442];
14385 xx[697] = xx[467];
14386 xx[698] = - xx[491];
14387 pm_math_cross3(xx + 681, xx + 696, xx + 699);
14388 xx[681] = xx[80] * (xx[699] + xx[442] * xx[499]) - xx[119];
14389 xx[682] = xx[117] + (xx[467] * xx[499] + xx[700]) * xx[80];
14390 xx[683] = (xx[701] - xx[491] * xx[499]) * xx[80];
14391 pm_math_quatXform(xx + 676, xx + 681, xx + 696);
14392 xx[442] = state[49] + xx[770];
14393 xx[467] = xx[442] * xx[2];
14394 xx[491] = cos(xx[467]);
14395 xx[499] = xx[312] * xx[491];
14396 xx[500] = sin(xx[467]);
14397 xx[467] = xx[312] * xx[500];
14398 xx[512] = xx[499] + xx[467];
14399 xx[576] = xx[379] * xx[491];
14400 xx[491] = xx[379] * xx[500];
14401 xx[500] = xx[576] - xx[491];
14402 xx[578] = xx[576] + xx[491];
14403 xx[491] = xx[499] - xx[467];
14404 xx[699] = xx[512];
14405 xx[700] = xx[500];
14406 xx[701] = xx[578];
14407 xx[702] = xx[491];
14408 pm_math_quatCompose(xx + 215, xx + 699, xx + 703);
14409 pm_math_quatCompose(xx + 154, xx + 703, xx + 707);
14410 pm_math_quatCompose(xx + 150, xx + 707, xx + 711);
14411 pm_math_quatCompose(xx + 146, xx + 711, xx + 715);
14412 xx[681] = xx[80] * (xx[712] * xx[714] - xx[711] * xx[713]);
14413 xx[682] = (xx[711] * xx[712] + xx[713] * xx[714]) * xx[80];
14414 xx[683] = xx[22] - (xx[712] * xx[712] + xx[713] * xx[713]) * xx[80];
14415 pm_math_cross3(xx + 681, xx + 84, xx + 711);
14416 pm_math_quatXform(xx + 715, xx + 711, xx + 681);
14417 pm_math_quatXform(xx + 699, xx + 595, xx + 711);
14418 xx[467] = xx[446] + xx[711];
14419 xx[499] = xx[601] - xx[713];
14420 xx[713] = - xx[467];
14421 xx[714] = - xx[712];
14422 xx[715] = xx[499];
14423 pm_math_quatXform(xx + 215, xx + 713, xx + 716);
14424 xx[576] = xx[716] - xx[236];
14425 xx[605] = xx[717] + xx[200];
14426 xx[613] = xx[718] - xx[233];
14427 xx[716] = xx[576];
14428 xx[717] = xx[605];
14429 xx[718] = xx[613];
14430 pm_math_quatXform(xx + 154, xx + 716, xx + 723);
14431 xx[624] = xx[723] + xx[220];
14432 xx[655] = xx[724] + xx[235];
14433 xx[669] = xx[725] + xx[238];
14434 xx[716] = xx[624];
14435 xx[717] = xx[655];
14436 xx[718] = xx[669];
14437 pm_math_quatXform(xx + 150, xx + 716, xx + 723);
14438 xx[673] = xx[724] + xx[246];
14439 xx[674] = xx[723] + xx[245];
14440 xx[711] = xx[673] * xx[35] - xx[674] * xx[32];
14441 xx[716] = xx[80] * xx[35] * xx[711] - (xx[673] - xx[259]) - xx[135];
14442 xx[673] = xx[674] + xx[80] * xx[32] * xx[711] + xx[248] - xx[131];
14443 xx[674] = xx[673] * xx[15];
14444 xx[711] = xx[716] * xx[15];
14445 xx[717] = xx[673] * xx[3] - xx[716] * xx[7];
14446 xx[723] = - xx[674];
14447 xx[724] = xx[711];
14448 xx[725] = xx[717];
14449 pm_math_cross3(xx + 139, xx + 723, xx + 726);
14450 pm_math_quatCompose(xx + 287, xx + 707, xx + 734);
14451 xx[718] = xx[4] * xx[710];
14452 xx[719] = xx[4] * xx[708] + xx[709];
14453 xx[723] = xx[718];
14454 xx[724] = xx[710];
14455 xx[725] = - xx[719];
14456 pm_math_cross3(xx + 708, xx + 723, xx + 739);
14457 xx[723] = xx[707] * xx[710];
14458 xx[742] = xx[22] + (xx[739] - xx[707] * xx[718]) * xx[80];
14459 xx[743] = xx[80] * (xx[740] - xx[723]) - xx[4];
14460 xx[744] = xx[80] * (xx[741] + xx[707] * xx[719]);
14461 pm_math_cross3(xx + 742, xx + 84, xx + 739);
14462 pm_math_quatXform(xx + 734, xx + 739, xx + 742);
14463 xx[719] = - (xx[669] * xx[4]);
14464 xx[739] = xx[719];
14465 xx[740] = - xx[669];
14466 xx[741] = xx[655] + xx[624] * xx[4];
14467 pm_math_quatXform(xx + 150, xx + 739, xx + 748);
14468 xx[739] = xx[748] + xx[263];
14469 xx[740] = xx[749] + xx[264];
14470 xx[741] = xx[750] + xx[265];
14471 pm_math_quatXform(xx + 283, xx + 739, xx + 748);
14472 xx[724] = xx[708] - xx[4] * xx[709];
14473 xx[739] = - xx[710];
14474 xx[740] = xx[718];
14475 xx[741] = xx[724];
14476 pm_math_cross3(xx + 708, xx + 739, xx + 792);
14477 xx[739] = xx[4] + (xx[723] + xx[792]) * xx[80];
14478 xx[740] = xx[22] + xx[80] * (xx[793] - xx[4] * xx[723]);
14479 xx[741] = xx[80] * (xx[794] - xx[707] * xx[724]);
14480 pm_math_cross3(xx + 739, xx + 84, xx + 723);
14481 pm_math_quatXform(xx + 734, xx + 723, xx + 739);
14482 xx[723] = xx[669];
14483 xx[724] = xx[719];
14484 xx[725] = xx[655] * xx[4] - xx[624];
14485 pm_math_quatXform(xx + 150, xx + 723, xx + 792);
14486 xx[723] = xx[792] + xx[46];
14487 xx[724] = xx[793] + xx[47];
14488 xx[725] = xx[794] + xx[48];
14489 pm_math_quatXform(xx + 283, xx + 723, xx + 792);
14490 xx[723] = xx[80] * (xx[708] * xx[710] - xx[707] * xx[709]);
14491 xx[724] = (xx[707] * xx[708] + xx[709] * xx[710]) * xx[80];
14492 xx[725] = xx[22] - (xx[708] * xx[708] + xx[709] * xx[709]) * xx[80];
14493 pm_math_cross3(xx + 723, xx + 84, xx + 707);
14494 pm_math_quatXform(xx + 734, xx + 707, xx + 723);
14495 xx[669] = xx[624] * xx[70];
14496 xx[707] = xx[655] * xx[70];
14497 xx[708] = xx[624] * xx[26] + xx[655] * xx[68];
14498 xx[734] = xx[669];
14499 xx[735] = xx[707];
14500 xx[736] = - xx[708];
14501 pm_math_cross3(xx + 183, xx + 734, xx + 795);
14502 xx[734] = xx[80] * (xx[795] + xx[669] * xx[24]) + xx[244] - xx[655] - xx[119];
14503 xx[735] = xx[624] + xx[80] * (xx[796] + xx[707] * xx[24]) + xx[69] + xx[117];
14504 xx[736] = (xx[797] - xx[708] * xx[24]) * xx[80] + xx[75];
14505 pm_math_quatXform(xx + 283, xx + 734, xx + 707);
14506 pm_math_quatCompose(xx + 320, xx + 703, xx + 734);
14507 xx[624] = xx[705] * xx[705];
14508 xx[655] = xx[706] * xx[706];
14509 xx[669] = xx[704] * xx[705];
14510 xx[710] = xx[703] * xx[706];
14511 xx[718] = xx[703] * xx[705];
14512 xx[719] = xx[704] * xx[706];
14513 xx[795] = xx[22] - (xx[624] + xx[655]) * xx[80];
14514 xx[796] = xx[80] * (xx[669] - xx[710]);
14515 xx[797] = (xx[718] + xx[719]) * xx[80];
14516 pm_math_cross3(xx + 795, xx + 84, xx + 798);
14517 pm_math_quatXform(xx + 734, xx + 798, xx + 795);
14518 xx[731] = xx[605] * xx[44];
14519 xx[745] = xx[613] * xx[83];
14520 xx[751] = xx[731] + xx[745];
14521 xx[788] = xx[605] * xx[42];
14522 xx[789] = xx[613] * xx[42];
14523 xx[798] = - xx[751];
14524 xx[799] = - xx[788];
14525 xx[800] = - xx[789];
14526 pm_math_cross3(xx + 333, xx + 798, xx + 801);
14527 xx[798] = xx[80] * (xx[801] - xx[751] * xx[40]) + xx[336];
14528 xx[799] = xx[80] * (xx[802] - xx[788] * xx[40]) + xx[278] - xx[613] - xx[74];
14529 xx[800] = xx[605] + xx[80] * (xx[803] - xx[789] * xx[40]) + xx[279] - xx[73];
14530 pm_math_quatXform(xx + 287, xx + 798, xx + 801);
14531 xx[751] = xx[704] * xx[704];
14532 xx[788] = xx[705] * xx[706];
14533 xx[705] = xx[703] * xx[704];
14534 xx[798] = (xx[710] + xx[669]) * xx[80];
14535 xx[799] = xx[22] - (xx[655] + xx[751]) * xx[80];
14536 xx[800] = xx[80] * (xx[788] - xx[705]);
14537 pm_math_cross3(xx + 798, xx + 84, xx + 804);
14538 pm_math_quatXform(xx + 734, xx + 804, xx + 798);
14539 xx[655] = xx[576] * xx[44];
14540 xx[669] = xx[576] * xx[42];
14541 xx[703] = xx[669] - xx[745];
14542 xx[704] = xx[613] * xx[44];
14543 xx[804] = xx[655];
14544 xx[805] = xx[703];
14545 xx[806] = xx[704];
14546 pm_math_cross3(xx + 333, xx + 804, xx + 807);
14547 xx[804] = xx[613] + (xx[655] * xx[40] + xx[807]) * xx[80] + xx[274] + xx[74];
14548 xx[805] = (xx[703] * xx[40] + xx[808]) * xx[80] + xx[134];
14549 xx[806] = (xx[704] * xx[40] + xx[809]) * xx[80] + xx[179] - xx[576] - xx[72];
14550 pm_math_quatXform(xx + 287, xx + 804, xx + 807);
14551 xx[804] = xx[80] * (xx[719] - xx[718]);
14552 xx[805] = (xx[705] + xx[788]) * xx[80];
14553 xx[806] = xx[22] - (xx[751] + xx[624]) * xx[80];
14554 pm_math_cross3(xx + 804, xx + 84, xx + 703);
14555 pm_math_quatXform(xx + 734, xx + 703, xx + 804);
14556 xx[613] = xx[576] * xx[83];
14557 xx[624] = xx[605] * xx[83];
14558 xx[655] = xx[669] - xx[731];
14559 xx[703] = xx[613];
14560 xx[704] = xx[624];
14561 xx[705] = xx[655];
14562 pm_math_cross3(xx + 333, xx + 703, xx + 734);
14563 xx[703] = (xx[613] * xx[40] + xx[734]) * xx[80] + xx[133] - xx[605] + xx[73];
14564 xx[704] = xx[576] + (xx[624] * xx[40] + xx[735]) * xx[80] + xx[64] + xx[72];
14565 xx[705] = (xx[655] * xx[40] + xx[736]) * xx[80] + xx[82];
14566 pm_math_quatXform(xx + 287, xx + 703, xx + 734);
14567 pm_math_quatCompose(xx + 349, xx + 699, xx + 703);
14568 xx[699] = xx[500];
14569 xx[700] = xx[578];
14570 xx[701] = xx[491];
14571 xx[576] = xx[578] * xx[63];
14572 xx[605] = xx[63] * xx[500] - xx[57] * xx[491];
14573 xx[613] = xx[578] * xx[57];
14574 xx[810] = - xx[576];
14575 xx[811] = xx[605];
14576 xx[812] = xx[613];
14577 pm_math_cross3(xx + 699, xx + 810, xx + 813);
14578 xx[810] = xx[80] * (xx[813] + xx[512] * xx[576]) - xx[57];
14579 xx[811] = xx[80] * (xx[814] - xx[512] * xx[605]);
14580 xx[812] = (xx[815] - xx[512] * xx[613]) * xx[80] - xx[63];
14581 pm_math_cross3(xx + 810, xx + 84, xx + 813);
14582 pm_math_quatXform(xx + 703, xx + 813, xx + 810);
14583 xx[813] = - (xx[63] * xx[712]);
14584 xx[814] = xx[63] * xx[467] + xx[57] * xx[499];
14585 xx[815] = xx[57] * xx[712];
14586 pm_math_quatXform(xx + 215, xx + 813, xx + 816);
14587 xx[813] = xx[816] + xx[136];
14588 xx[814] = xx[817] + xx[137] - xx[67];
14589 xx[815] = xx[818] - xx[175];
14590 pm_math_quatXform(xx + 320, xx + 813, xx + 816);
14591 xx[467] = xx[72] * xx[706];
14592 xx[499] = xx[72] * xx[704] - xx[73] * xx[705];
14593 xx[813] = - xx[467];
14594 xx[814] = xx[73] * xx[706];
14595 xx[815] = xx[499];
14596 pm_math_cross3(xx + 704, xx + 813, xx + 819);
14597 xx[576] = xx[506] * xx[491];
14598 xx[605] = xx[535] * xx[491];
14599 xx[491] = xx[506] * xx[500] + xx[578] * xx[535];
14600 xx[813] = xx[576];
14601 xx[814] = xx[605];
14602 xx[815] = - xx[491];
14603 pm_math_cross3(xx + 699, xx + 813, xx + 822);
14604 xx[699] = xx[535] + xx[80] * (xx[822] + xx[512] * xx[576]);
14605 xx[700] = (xx[512] * xx[605] + xx[823]) * xx[80] - xx[506];
14606 xx[701] = (xx[824] - xx[512] * xx[491]) * xx[80];
14607 pm_math_quatXform(xx + 349, xx + 699, xx + 813);
14608 xx[491] = state[88] + xx[784];
14609 xx[500] = xx[491] * xx[2];
14610 xx[512] = cos(xx[500]);
14611 xx[576] = xx[512] * xx[536];
14612 xx[578] = sin(xx[500]);
14613 xx[500] = xx[594] * xx[578];
14614 xx[605] = - (xx[638] * xx[512] + xx[578] * xx[642]);
14615 xx[613] = xx[638] * xx[578] - xx[512] * xx[642];
14616 xx[624] = xx[594] * xx[512] - xx[578] * xx[536];
14617 xx[699] = - (xx[576] + xx[500]);
14618 xx[700] = xx[605];
14619 xx[701] = xx[613];
14620 xx[702] = xx[624];
14621 xx[822] = xx[668];
14622 xx[823] = xx[671];
14623 xx[824] = xx[670];
14624 xx[825] = xx[648];
14625 pm_math_quatDeriv(xx + 822, xx + 785, xx + 826);
14626 xx[655] = xx[648] + xx[829];
14627 xx[648] = xx[668] + xx[826];
14628 xx[668] = xx[671] + xx[827];
14629 xx[669] = xx[670] + xx[828];
14630 xx[670] = sqrt(xx[648] * xx[648] + xx[668] * xx[668] + xx[669] * xx[669] + xx
14631 [655] * xx[655]);
14632 if (xx[28] > xx[670])
14633 xx[670] = xx[28];
14634 xx[671] = xx[655] / xx[670];
14635 xx[655] = xx[648] / xx[670];
14636 xx[648] = xx[21] * xx[671] - xx[25] * xx[655];
14637 xx[710] = xx[669] / xx[670];
14638 xx[669] = xx[668] / xx[670];
14639 xx[668] = xx[21] * xx[710] + xx[25] * xx[669];
14640 xx[670] = - xx[668];
14641 xx[712] = xx[25] * xx[710] - xx[21] * xx[669];
14642 xx[718] = - xx[712];
14643 xx[719] = xx[21] * xx[655] + xx[25] * xx[671];
14644 xx[731] = - xx[719];
14645 xx[822] = xx[648];
14646 xx[823] = xx[670];
14647 xx[824] = xx[718];
14648 xx[825] = xx[731];
14649 pm_math_quatCompose(xx + 699, xx + 822, xx + 826);
14650 xx[699] = (xx[712] * xx[648] + xx[719] * xx[668]) * xx[80];
14651 xx[700] = xx[80] * (xx[712] * xx[719] - xx[648] * xx[668]);
14652 xx[701] = xx[22] - (xx[668] * xx[668] + xx[712] * xx[712]) * xx[80];
14653 pm_math_cross3(xx + 699, xx + 267, xx + 830);
14654 pm_math_quatXform(xx + 826, xx + 830, xx + 699);
14655 pm_math_quatXform(xx + 822, xx + 126, xx + 826);
14656 xx[702] = xx[827] * xx[578] - xx[512] * xx[826];
14657 xx[737] = xx[684] * xx[512] + xx[685] * xx[578];
14658 xx[745] = xx[80] * xx[578] * xx[702] - (xx[827] - xx[80] * xx[737] * xx[578])
14659 - xx[685];
14660 xx[751] = xx[826] + xx[80] * xx[512] * xx[702] + xx[80] * xx[737] * xx[512] -
14661 xx[684];
14662 xx[702] = xx[751] * xx[642];
14663 xx[737] = xx[745] * xx[642];
14664 xx[788] = xx[751] * xx[536] + xx[745] * xx[594];
14665 xx[829] = - xx[702];
14666 xx[830] = xx[737];
14667 xx[831] = - xx[788];
14668 pm_math_cross3(xx + 689, xx + 829, xx + 832);
14669 xx[835] = - (xx[500] + xx[576]);
14670 xx[836] = xx[605];
14671 xx[837] = xx[613];
14672 xx[838] = xx[624];
14673 pm_math_quatCompose(xx + 835, xx + 822, xx + 839);
14674 pm_math_quatXform(xx + 839, xx + 280, xx + 689);
14675 pm_math_quatXform(xx + 822, xx + 167, xx + 829);
14676 pm_math_quatXform(xx + 835, xx + 829, xx + 843);
14677 pm_math_quatXform(xx + 839, xx + 297, xx + 829);
14678 pm_math_quatXform(xx + 822, xx + 176, xx + 846);
14679 pm_math_quatXform(xx + 835, xx + 846, xx + 822);
14680 xx[500] = xx[102] * xx[842];
14681 xx[576] = xx[102] * xx[840] + xx[123] * xx[841];
14682 xx[846] = - xx[500];
14683 xx[847] = - (xx[123] * xx[842]);
14684 xx[848] = xx[576];
14685 pm_math_cross3(xx + 840, xx + 846, xx + 849);
14686 xx[846] = xx[670];
14687 xx[847] = xx[718];
14688 xx[848] = xx[731];
14689 xx[605] = xx[117] * xx[719];
14690 xx[613] = xx[119] * xx[719];
14691 xx[624] = xx[117] * xx[668] + xx[712] * xx[119];
14692 xx[852] = xx[605];
14693 xx[853] = xx[613];
14694 xx[854] = - xx[624];
14695 pm_math_cross3(xx + 846, xx + 852, xx + 855);
14696 xx[846] = xx[80] * (xx[855] + xx[605] * xx[648]) - xx[119];
14697 xx[847] = xx[117] + (xx[613] * xx[648] + xx[856]) * xx[80];
14698 xx[848] = (xx[857] - xx[624] * xx[648]) * xx[80];
14699 pm_math_quatXform(xx + 835, xx + 846, xx + 852);
14700 xx[605] = xx[17] * xx[2];
14701 xx[613] = cos(xx[605]);
14702 xx[624] = xx[613] * xx[647];
14703 xx[648] = sin(xx[605]);
14704 xx[605] = xx[675] * xx[648];
14705 xx[668] = - (xx[721] * xx[613] - xx[648] * xx[722]);
14706 xx[670] = xx[721] * xx[648] + xx[613] * xx[722];
14707 xx[712] = xx[675] * xx[613] - xx[648] * xx[647];
14708 xx[855] = - (xx[624] + xx[605]);
14709 xx[856] = xx[668];
14710 xx[857] = xx[670];
14711 xx[858] = xx[712];
14712 xx[859] = xx[730];
14713 xx[860] = xx[733];
14714 xx[861] = xx[732];
14715 xx[862] = xx[729];
14716 pm_math_quatDeriv(xx + 859, xx + 756, xx + 863);
14717 xx[718] = xx[729] + xx[866];
14718 xx[719] = xx[730] + xx[863];
14719 xx[729] = xx[733] + xx[864];
14720 xx[730] = xx[732] + xx[865];
14721 xx[731] = sqrt(xx[719] * xx[719] + xx[729] * xx[729] + xx[730] * xx[730] + xx
14722 [718] * xx[718]);
14723 if (xx[28] > xx[731])
14724 xx[731] = xx[28];
14725 xx[732] = xx[718] / xx[731];
14726 xx[718] = xx[719] / xx[731];
14727 xx[719] = xx[21] * xx[732] - xx[25] * xx[718];
14728 xx[733] = xx[730] / xx[731];
14729 xx[730] = xx[729] / xx[731];
14730 xx[729] = xx[21] * xx[733] + xx[25] * xx[730];
14731 xx[731] = - xx[729];
14732 xx[789] = xx[25] * xx[733] - xx[21] * xx[730];
14733 xx[825] = - xx[789];
14734 xx[846] = xx[21] * xx[718] + xx[25] * xx[732];
14735 xx[847] = - xx[846];
14736 xx[859] = xx[719];
14737 xx[860] = xx[731];
14738 xx[861] = xx[825];
14739 xx[862] = xx[847];
14740 pm_math_quatCompose(xx + 855, xx + 859, xx + 863);
14741 xx[855] = (xx[789] * xx[719] + xx[846] * xx[729]) * xx[80];
14742 xx[856] = xx[80] * (xx[789] * xx[846] - xx[719] * xx[729]);
14743 xx[857] = xx[22] - (xx[729] * xx[729] + xx[789] * xx[789]) * xx[80];
14744 pm_math_cross3(xx + 855, xx + 267, xx + 867);
14745 pm_math_quatXform(xx + 863, xx + 867, xx + 855);
14746 pm_math_quatXform(xx + 859, xx + 126, xx + 863);
14747 xx[848] = xx[864] * xx[648] - xx[613] * xx[863];
14748 xx[858] = xx[746] * xx[613] - xx[747] * xx[648];
14749 xx[866] = xx[80] * xx[648] * xx[848] - (xx[864] + xx[80] * xx[858] * xx[648])
14750 - xx[747];
14751 xx[867] = xx[863] + xx[80] * xx[613] * xx[848] - xx[80] * xx[858] * xx[613] +
14752 xx[746];
14753 xx[848] = xx[867] * xx[722];
14754 xx[858] = xx[866] * xx[722];
14755 xx[868] = xx[867] * xx[647] + xx[866] * xx[675];
14756 xx[869] = xx[848];
14757 xx[870] = - xx[858];
14758 xx[871] = - xx[868];
14759 pm_math_cross3(xx + 752, xx + 869, xx + 872);
14760 xx[875] = - (xx[605] + xx[624]);
14761 xx[876] = xx[668];
14762 xx[877] = xx[670];
14763 xx[878] = xx[712];
14764 pm_math_quatCompose(xx + 875, xx + 859, xx + 879);
14765 pm_math_quatXform(xx + 879, xx + 280, xx + 752);
14766 pm_math_quatXform(xx + 859, xx + 167, xx + 869);
14767 pm_math_quatXform(xx + 875, xx + 869, xx + 883);
14768 pm_math_quatXform(xx + 879, xx + 297, xx + 869);
14769 pm_math_quatXform(xx + 859, xx + 176, xx + 886);
14770 pm_math_quatXform(xx + 875, xx + 886, xx + 859);
14771 xx[605] = xx[102] * xx[882];
14772 xx[624] = xx[102] * xx[880] + xx[123] * xx[881];
14773 xx[886] = - xx[605];
14774 xx[887] = - (xx[123] * xx[882]);
14775 xx[888] = xx[624];
14776 pm_math_cross3(xx + 880, xx + 886, xx + 889);
14777 xx[886] = xx[731];
14778 xx[887] = xx[825];
14779 xx[888] = xx[847];
14780 xx[668] = xx[117] * xx[846];
14781 xx[670] = xx[119] * xx[846];
14782 xx[712] = xx[117] * xx[729] + xx[789] * xx[119];
14783 xx[892] = xx[668];
14784 xx[893] = xx[670];
14785 xx[894] = - xx[712];
14786 pm_math_cross3(xx + 886, xx + 892, xx + 895);
14787 xx[886] = xx[80] * (xx[895] + xx[668] * xx[719]) - xx[119];
14788 xx[887] = xx[117] + (xx[670] * xx[719] + xx[896]) * xx[80];
14789 xx[888] = (xx[897] - xx[712] * xx[719]) * xx[80];
14790 pm_math_quatXform(xx + 875, xx + 886, xx + 892);
14791 xx[668] = state[51] + xx[771];
14792 xx[670] = xx[668] * xx[2];
14793 xx[712] = cos(xx[670]);
14794 xx[719] = sin(xx[670]);
14795 xx[670] = xx[712] * xx[174] + xx[719] * xx[110];
14796 xx[729] = xx[138] * xx[712] - xx[719] * xx[173];
14797 xx[731] = xx[712] * xx[173] + xx[138] * xx[719];
14798 xx[138] = xx[712] * xx[110] - xx[719] * xx[174];
14799 xx[755] = xx[670];
14800 xx[756] = xx[729];
14801 xx[757] = xx[731];
14802 xx[758] = xx[138];
14803 pm_math_quatCompose(xx + 154, xx + 755, xx + 759);
14804 pm_math_quatCompose(xx + 150, xx + 759, xx + 763);
14805 pm_math_quatCompose(xx + 146, xx + 763, xx + 767);
14806 xx[146] = xx[80] * (xx[764] * xx[766] - xx[763] * xx[765]);
14807 xx[147] = (xx[763] * xx[764] + xx[765] * xx[766]) * xx[80];
14808 xx[148] = xx[22] - (xx[764] * xx[764] + xx[765] * xx[765]) * xx[80];
14809 pm_math_cross3(xx + 146, xx + 84, xx + 763);
14810 pm_math_quatXform(xx + 767, xx + 763, xx + 146);
14811 xx[110] = xx[54] * xx[719];
14812 xx[149] = xx[110] * xx[719];
14813 xx[173] = xx[738] * xx[719];
14814 xx[174] = xx[712] * xx[173];
14815 xx[763] = xx[20] - (xx[80] * (xx[149] - xx[174]) - xx[54]);
14816 xx[764] = xx[712] * xx[110];
14817 xx[110] = xx[173] * xx[719];
14818 xx[173] = (xx[764] + xx[110]) * xx[80] - xx[738];
14819 xx[765] = xx[763];
14820 xx[766] = - xx[173];
14821 xx[767] = xx[791];
14822 pm_math_quatXform(xx + 215, xx + 765, xx + 768);
14823 xx[771] = xx[768] - xx[236];
14824 xx[772] = xx[769] + xx[200];
14825 xx[768] = xx[770] - xx[233];
14826 xx[773] = xx[771];
14827 xx[774] = xx[772];
14828 xx[775] = xx[768];
14829 pm_math_quatXform(xx + 154, xx + 773, xx + 776);
14830 xx[154] = xx[776] + xx[220];
14831 xx[155] = xx[777] + xx[235];
14832 xx[156] = xx[778] + xx[238];
14833 pm_math_quatXform(xx + 150, xx + 154, xx + 773);
14834 xx[157] = xx[774] + xx[246];
14835 xx[769] = xx[773] + xx[245];
14836 xx[770] = xx[157] * xx[35] - xx[769] * xx[32];
14837 xx[773] = xx[80] * xx[35] * xx[770] - (xx[157] - xx[259]) - xx[135];
14838 xx[157] = xx[769] + xx[80] * xx[32] * xx[770] + xx[248] - xx[131];
14839 xx[248] = xx[157] * xx[15];
14840 xx[259] = xx[773] * xx[15];
14841 xx[769] = xx[157] * xx[3] - xx[773] * xx[7];
14842 xx[774] = - xx[248];
14843 xx[775] = xx[259];
14844 xx[776] = xx[769];
14845 pm_math_cross3(xx + 139, xx + 774, xx + 777);
14846 pm_math_quatCompose(xx + 287, xx + 759, xx + 780);
14847 xx[139] = xx[4] * xx[762];
14848 xx[140] = xx[4] * xx[760] + xx[761];
14849 xx[774] = xx[139];
14850 xx[775] = xx[762];
14851 xx[776] = - xx[140];
14852 pm_math_cross3(xx + 760, xx + 774, xx + 784);
14853 xx[141] = xx[759] * xx[762];
14854 xx[774] = xx[22] + (xx[784] - xx[759] * xx[139]) * xx[80];
14855 xx[775] = xx[80] * (xx[785] - xx[141]) - xx[4];
14856 xx[776] = xx[80] * (xx[786] + xx[759] * xx[140]);
14857 pm_math_cross3(xx + 774, xx + 84, xx + 784);
14858 pm_math_quatXform(xx + 780, xx + 784, xx + 774);
14859 xx[140] = - (xx[156] * xx[4]);
14860 xx[784] = xx[140];
14861 xx[785] = - xx[156];
14862 xx[786] = xx[155] + xx[154] * xx[4];
14863 pm_math_quatXform(xx + 150, xx + 784, xx + 886);
14864 xx[784] = xx[886] + xx[263];
14865 xx[785] = xx[887] + xx[264];
14866 xx[786] = xx[888] + xx[265];
14867 pm_math_quatXform(xx + 283, xx + 784, xx + 263);
14868 xx[770] = xx[760] - xx[4] * xx[761];
14869 xx[784] = - xx[762];
14870 xx[785] = xx[139];
14871 xx[786] = xx[770];
14872 pm_math_cross3(xx + 760, xx + 784, xx + 886);
14873 xx[784] = xx[4] + (xx[141] + xx[886]) * xx[80];
14874 xx[785] = xx[22] + xx[80] * (xx[887] - xx[4] * xx[141]);
14875 xx[786] = xx[80] * (xx[888] - xx[759] * xx[770]);
14876 pm_math_cross3(xx + 784, xx + 84, xx + 886);
14877 pm_math_quatXform(xx + 780, xx + 886, xx + 784);
14878 xx[886] = xx[156];
14879 xx[887] = xx[140];
14880 xx[888] = xx[155] * xx[4] - xx[154];
14881 pm_math_quatXform(xx + 150, xx + 886, xx + 139);
14882 xx[150] = xx[139] + xx[46];
14883 xx[151] = xx[140] + xx[47];
14884 xx[152] = xx[141] + xx[48];
14885 pm_math_quatXform(xx + 283, xx + 150, xx + 46);
14886 xx[139] = xx[80] * (xx[760] * xx[762] - xx[759] * xx[761]);
14887 xx[140] = (xx[759] * xx[760] + xx[761] * xx[762]) * xx[80];
14888 xx[141] = xx[22] - (xx[760] * xx[760] + xx[761] * xx[761]) * xx[80];
14889 pm_math_cross3(xx + 139, xx + 84, xx + 150);
14890 pm_math_quatXform(xx + 780, xx + 150, xx + 139);
14891 xx[150] = xx[154] * xx[70];
14892 xx[151] = xx[155] * xx[70];
14893 xx[70] = xx[154] * xx[26] + xx[155] * xx[68];
14894 xx[759] = xx[150];
14895 xx[760] = xx[151];
14896 xx[761] = - xx[70];
14897 pm_math_cross3(xx + 183, xx + 759, xx + 780);
14898 xx[183] = xx[80] * (xx[780] + xx[150] * xx[24]) + xx[244] - xx[155] - xx[119];
14899 xx[184] = xx[154] + xx[80] * (xx[781] + xx[151] * xx[24]) + xx[69] + xx[117];
14900 xx[185] = (xx[782] - xx[70] * xx[24]) * xx[80] + xx[75];
14901 pm_math_quatXform(xx + 283, xx + 183, xx + 68);
14902 pm_math_quatCompose(xx + 320, xx + 755, xx + 150);
14903 xx[24] = xx[731] * xx[731];
14904 xx[26] = xx[138] * xx[138];
14905 xx[75] = xx[731] * xx[729];
14906 xx[154] = xx[670] * xx[138];
14907 xx[155] = xx[670] * xx[731];
14908 xx[156] = xx[138] * xx[729];
14909 xx[183] = xx[22] - (xx[24] + xx[26]) * xx[80];
14910 xx[184] = xx[80] * (xx[75] - xx[154]);
14911 xx[185] = (xx[155] + xx[156]) * xx[80];
14912 pm_math_cross3(xx + 183, xx + 84, xx + 755);
14913 pm_math_quatXform(xx + 150, xx + 755, xx + 183);
14914 xx[244] = xx[772] * xx[44];
14915 xx[755] = xx[768] * xx[83];
14916 xx[756] = xx[244] + xx[755];
14917 xx[757] = xx[772] * xx[42];
14918 xx[758] = xx[768] * xx[42];
14919 xx[759] = - xx[756];
14920 xx[760] = - xx[757];
14921 xx[761] = - xx[758];
14922 pm_math_cross3(xx + 333, xx + 759, xx + 780);
14923 xx[759] = xx[80] * (xx[780] - xx[756] * xx[40]) + xx[336];
14924 xx[760] = xx[80] * (xx[781] - xx[757] * xx[40]) + xx[278] - xx[768] - xx[74];
14925 xx[761] = xx[772] + xx[80] * (xx[782] - xx[758] * xx[40]) + xx[279] - xx[73];
14926 pm_math_quatXform(xx + 287, xx + 759, xx + 756);
14927 xx[278] = xx[729] * xx[729];
14928 xx[279] = xx[731] * xx[138];
14929 xx[138] = xx[670] * xx[729];
14930 xx[759] = (xx[154] + xx[75]) * xx[80];
14931 xx[760] = xx[22] - (xx[26] + xx[278]) * xx[80];
14932 xx[761] = xx[80] * (xx[279] - xx[138]);
14933 pm_math_cross3(xx + 759, xx + 84, xx + 780);
14934 pm_math_quatXform(xx + 150, xx + 780, xx + 759);
14935 xx[26] = xx[771] * xx[44];
14936 xx[75] = xx[771] * xx[42];
14937 xx[42] = xx[75] - xx[755];
14938 xx[154] = xx[768] * xx[44];
14939 xx[780] = xx[26];
14940 xx[781] = xx[42];
14941 xx[782] = xx[154];
14942 pm_math_cross3(xx + 333, xx + 780, xx + 886);
14943 xx[780] = xx[768] + (xx[26] * xx[40] + xx[886]) * xx[80] + xx[274] + xx[74];
14944 xx[781] = (xx[42] * xx[40] + xx[887]) * xx[80] + xx[134];
14945 xx[782] = (xx[154] * xx[40] + xx[888]) * xx[80] + xx[179] - xx[771] - xx[72];
14946 pm_math_quatXform(xx + 287, xx + 780, xx + 886);
14947 xx[780] = xx[80] * (xx[156] - xx[155]);
14948 xx[781] = (xx[138] + xx[279]) * xx[80];
14949 xx[782] = xx[22] - (xx[278] + xx[24]) * xx[80];
14950 pm_math_cross3(xx + 780, xx + 84, xx + 154);
14951 pm_math_quatXform(xx + 150, xx + 154, xx + 780);
14952 xx[24] = xx[771] * xx[83];
14953 xx[26] = xx[772] * xx[83];
14954 xx[42] = xx[75] - xx[244];
14955 xx[150] = xx[24];
14956 xx[151] = xx[26];
14957 xx[152] = xx[42];
14958 pm_math_cross3(xx + 333, xx + 150, xx + 153);
14959 xx[150] = (xx[24] * xx[40] + xx[153]) * xx[80] + xx[133] - xx[772] + xx[73];
14960 xx[151] = xx[771] + (xx[26] * xx[40] + xx[154]) * xx[80] + xx[64] + xx[72];
14961 xx[152] = (xx[42] * xx[40] + xx[155]) * xx[80] + xx[82];
14962 pm_math_quatXform(xx + 287, xx + 150, xx + 153);
14963 xx[24] = xx[712] * xx[349] + xx[352] * xx[719];
14964 xx[26] = xx[712] * xx[350] - xx[351] * xx[719];
14965 xx[40] = xx[712] * xx[351] + xx[350] * xx[719];
14966 xx[42] = xx[712] * xx[352] - xx[349] * xx[719];
14967 xx[333] = xx[24];
14968 xx[334] = xx[26];
14969 xx[335] = xx[40];
14970 xx[336] = xx[42];
14971 xx[44] = xx[57] * xx[719];
14972 xx[64] = xx[80] * xx[712] * xx[44];
14973 xx[75] = xx[80] * xx[44] * xx[719] - xx[57];
14974 xx[150] = xx[74] * xx[64] + xx[55];
14975 xx[151] = xx[106] + xx[74] * xx[75];
14976 xx[152] = xx[73] * xx[75] - xx[72] * xx[64];
14977 pm_math_quatXform(xx + 333, xx + 150, xx + 770);
14978 xx[150] = - (xx[63] * xx[173]);
14979 xx[151] = - (xx[63] * xx[763] + xx[30]);
14980 xx[152] = xx[57] * xx[173];
14981 pm_math_quatXform(xx + 215, xx + 150, xx + 895);
14982 xx[150] = xx[895] + xx[136];
14983 xx[151] = xx[896] + xx[137] - xx[67];
14984 xx[152] = xx[897] - xx[175];
14985 pm_math_quatXform(xx + 320, xx + 150, xx + 136);
14986 xx[150] = xx[26];
14987 xx[151] = xx[40];
14988 xx[152] = xx[42];
14989 xx[44] = xx[72] * xx[42];
14990 xx[64] = xx[73] * xx[42];
14991 xx[42] = xx[72] * xx[26] - xx[40] * xx[73];
14992 xx[215] = - xx[44];
14993 xx[216] = xx[64];
14994 xx[217] = xx[42];
14995 pm_math_cross3(xx + 150, xx + 215, xx + 895);
14996 xx[26] = xx[738] - xx[80] * (xx[764] + xx[110]);
14997 xx[40] = xx[54] + (xx[174] - xx[149]) * xx[80];
14998 xx[75] = xx[352] * xx[40];
14999 xx[82] = xx[26] * xx[352];
15000 xx[83] = xx[350] * xx[40] + xx[26] * xx[351];
15001 xx[149] = xx[75];
15002 xx[150] = xx[82];
15003 xx[151] = - xx[83];
15004 pm_math_cross3(xx + 350, xx + 149, xx + 173);
15005 xx[898] = xx[0];
15006 xx[899] = xx[0];
15007 xx[900] = xx[0];
15008 xx[901] = xx[0];
15009 xx[902] = xx[190] + xx[260] + xx[80] * (xx[271] - xx[251] * xx[14]);
15010 xx[903] = xx[300] + xx[303];
15011 xx[904] = xx[306] + xx[309];
15012 xx[905] = xx[316] + xx[294];
15013 xx[906] = xx[291] + xx[337];
15014 xx[907] = xx[340] + xx[346];
15015 xx[908] = xx[343] + xx[329];
15016 xx[909] = xx[357] + xx[360];
15017 xx[910] = xx[80] * (xx[369] - xx[31] * xx[103]) + xx[33] + xx[80] * (xx[363] -
15018 xx[349] * xx[180]) + xx[73];
15019 xx[911] = xx[0];
15020 xx[912] = xx[0];
15021 xx[913] = xx[0];
15022 xx[914] = xx[0];
15023 xx[915] = xx[0];
15024 xx[916] = xx[0];
15025 xx[917] = xx[0];
15026 xx[918] = xx[0];
15027 xx[919] = - (xx[375] + xx[388] + xx[80] * (xx[394] + xx[241] * xx[378]));
15028 xx[920] = - (xx[275] + xx[406]);
15029 xx[921] = - (xx[391] + xx[380]);
15030 xx[922] = - (xx[80] * (xx[423] - xx[416] * xx[187]) + xx[426] - xx[123]);
15031 xx[923] = xx[0];
15032 xx[924] = xx[0];
15033 xx[925] = xx[0];
15034 xx[926] = xx[0];
15035 xx[927] = xx[0];
15036 xx[928] = xx[0];
15037 xx[929] = xx[0];
15038 xx[930] = xx[0];
15039 xx[931] = xx[0];
15040 xx[932] = xx[0];
15041 xx[933] = xx[0];
15042 xx[934] = xx[0];
15043 xx[935] = xx[191] + xx[258] + (xx[255] * xx[14] + xx[272]) * xx[80];
15044 xx[936] = xx[301] + xx[304];
15045 xx[937] = xx[307] + xx[310];
15046 xx[938] = xx[317] + xx[295];
15047 xx[939] = xx[292] + xx[338];
15048 xx[940] = xx[341] + xx[347];
15049 xx[941] = xx[344] + xx[330];
15050 xx[942] = xx[358] + xx[361];
15051 xx[943] = (xx[31] * xx[111] + xx[370]) * xx[80] + xx[99] + (xx[349] * xx[181]
15052 + xx[364]) * xx[80] + xx[72];
15053 xx[944] = xx[0];
15054 xx[945] = xx[0];
15055 xx[946] = xx[0];
15056 xx[947] = xx[0];
15057 xx[948] = xx[0];
15058 xx[949] = xx[0];
15059 xx[950] = xx[0];
15060 xx[951] = xx[0];
15061 xx[952] = - (xx[376] + xx[389] + (xx[395] - xx[241] * xx[387]) * xx[80]);
15062 xx[953] = - (xx[276] + xx[407]);
15063 xx[954] = - (xx[392] + xx[381]);
15064 xx[955] = - ((xx[424] - xx[123] * xx[416] * xx[419]) * xx[80] + xx[427] + xx
15065 [102]);
15066 xx[956] = xx[0];
15067 xx[957] = xx[0];
15068 xx[958] = xx[0];
15069 xx[959] = xx[0];
15070 xx[960] = xx[0];
15071 xx[961] = xx[0];
15072 xx[962] = xx[0];
15073 xx[963] = xx[0];
15074 xx[964] = xx[0];
15075 xx[965] = xx[0];
15076 xx[966] = xx[0];
15077 xx[967] = xx[0];
15078 xx[968] = xx[192] + (xx[14] * xx[261] + xx[273]) * xx[80];
15079 xx[969] = xx[302] + xx[305];
15080 xx[970] = xx[308] + xx[311];
15081 xx[971] = xx[318] + xx[296];
15082 xx[972] = xx[293] + xx[339];
15083 xx[973] = xx[342] + xx[348];
15084 xx[974] = xx[345] + xx[331];
15085 xx[975] = xx[359] + xx[362];
15086 xx[976] = (xx[31] * xx[100] + xx[371]) * xx[80] + (xx[349] * xx[182] + xx[365])
15087 * xx[80];
15088 xx[977] = xx[0];
15089 xx[978] = xx[0];
15090 xx[979] = xx[0];
15091 xx[980] = xx[0];
15092 xx[981] = xx[0];
15093 xx[982] = xx[0];
15094 xx[983] = xx[0];
15095 xx[984] = xx[0];
15096 xx[985] = - (xx[377] + (xx[396] - xx[241] * xx[390]) * xx[80]);
15097 xx[986] = - (xx[277] + xx[408]);
15098 xx[987] = - (xx[393] + xx[382]);
15099 xx[988] = - ((xx[416] * xx[189] + xx[425]) * xx[80] + xx[428]);
15100 xx[989] = xx[0];
15101 xx[990] = xx[0];
15102 xx[991] = xx[0];
15103 xx[992] = xx[0];
15104 xx[993] = xx[0];
15105 xx[994] = xx[0];
15106 xx[995] = xx[0];
15107 xx[996] = xx[0];
15108 xx[997] = xx[0];
15109 xx[998] = xx[0];
15110 xx[999] = xx[0];
15111 xx[1000] = xx[0];
15112 xx[1001] = xx[420] + xx[450] + xx[80] * (xx[459] - xx[443] * xx[14]);
15113 xx[1002] = xx[468] + xx[477];
15114 xx[1003] = xx[474] + xx[453];
15115 xx[1004] = xx[480] + xx[437];
15116 xx[1005] = xx[483] + xx[488];
15117 xx[1006] = xx[493] + xx[503];
15118 xx[1007] = xx[496] + xx[464];
15119 xx[1008] = xx[507] + xx[516];
15120 xx[1009] = xx[0];
15121 xx[1010] = xx[80] * (xx[519] + xx[433] * xx[199]) + xx[513] - xx[73];
15122 xx[1011] = xx[0];
15123 xx[1012] = xx[0];
15124 xx[1013] = xx[0];
15125 xx[1014] = - (xx[429] + xx[472] + xx[80] * (xx[537] - xx[432] * xx[315]));
15126 xx[1015] = - (xx[413] + xx[544]);
15127 xx[1016] = - (xx[529] + xx[522]);
15128 xx[1017] = - (xx[80] * (xx[559] - xx[555] * xx[249]) + xx[562] - xx[123]);
15129 xx[1018] = xx[0];
15130 xx[1019] = xx[0];
15131 xx[1020] = xx[0];
15132 xx[1021] = xx[0];
15133 xx[1022] = xx[0];
15134 xx[1023] = xx[0];
15135 xx[1024] = xx[0];
15136 xx[1025] = xx[0];
15137 xx[1026] = xx[0];
15138 xx[1027] = xx[0];
15139 xx[1028] = xx[0];
15140 xx[1029] = xx[0];
15141 xx[1030] = xx[0];
15142 xx[1031] = xx[0];
15143 xx[1032] = xx[0];
15144 xx[1033] = xx[0];
15145 xx[1034] = xx[421] + xx[441] + (xx[444] * xx[14] + xx[460]) * xx[80];
15146 xx[1035] = xx[469] + xx[478];
15147 xx[1036] = xx[475] + xx[454];
15148 xx[1037] = xx[481] + xx[438];
15149 xx[1038] = xx[484] + xx[489];
15150 xx[1039] = xx[494] + xx[504];
15151 xx[1040] = xx[497] + xx[465];
15152 xx[1041] = xx[508] + xx[517];
15153 xx[1042] = xx[0];
15154 xx[1043] = (xx[520] - xx[73] * xx[433] * xx[436]) * xx[80] + xx[514] - xx[72];
15155 xx[1044] = xx[0];
15156 xx[1045] = xx[0];
15157 xx[1046] = xx[0];
15158 xx[1047] = - (xx[430] + xx[486] + (xx[471] * xx[315] + xx[538]) * xx[80]);
15159 xx[1048] = - (xx[414] + xx[545]);
15160 xx[1049] = - (xx[530] + xx[523]);
15161 xx[1050] = - ((xx[560] - xx[123] * xx[555] * xx[558]) * xx[80] + xx[563] + xx
15162 [102]);
15163 xx[1051] = xx[0];
15164 xx[1052] = xx[0];
15165 xx[1053] = xx[0];
15166 xx[1054] = xx[0];
15167 xx[1055] = xx[0];
15168 xx[1056] = xx[0];
15169 xx[1057] = xx[0];
15170 xx[1058] = xx[0];
15171 xx[1059] = xx[0];
15172 xx[1060] = xx[0];
15173 xx[1061] = xx[0];
15174 xx[1062] = xx[0];
15175 xx[1063] = xx[0];
15176 xx[1064] = xx[0];
15177 xx[1065] = xx[0];
15178 xx[1066] = xx[0];
15179 xx[1067] = xx[422] + (xx[14] * xx[452] + xx[461]) * xx[80];
15180 xx[1068] = xx[470] + xx[479];
15181 xx[1069] = xx[476] + xx[455];
15182 xx[1070] = xx[482] + xx[439];
15183 xx[1071] = xx[485] + xx[490];
15184 xx[1072] = xx[495] + xx[505];
15185 xx[1073] = xx[498] + xx[466];
15186 xx[1074] = xx[509] + xx[518];
15187 xx[1075] = xx[0];
15188 xx[1076] = (xx[433] * xx[237] + xx[521]) * xx[80] + xx[515];
15189 xx[1077] = xx[0];
15190 xx[1078] = xx[0];
15191 xx[1079] = xx[0];
15192 xx[1080] = - (xx[431] + (xx[487] * xx[315] + xx[539]) * xx[80]);
15193 xx[1081] = - (xx[415] + xx[546]);
15194 xx[1082] = - (xx[531] + xx[524]);
15195 xx[1083] = - ((xx[555] * xx[332] + xx[561]) * xx[80] + xx[564]);
15196 xx[1084] = xx[0];
15197 xx[1085] = xx[0];
15198 xx[1086] = xx[0];
15199 xx[1087] = xx[0];
15200 xx[1088] = xx[0];
15201 xx[1089] = xx[0];
15202 xx[1090] = xx[0];
15203 xx[1091] = xx[0];
15204 xx[1092] = xx[0];
15205 xx[1093] = xx[0];
15206 xx[1094] = xx[0];
15207 xx[1095] = xx[0];
15208 xx[1096] = xx[0];
15209 xx[1097] = xx[0];
15210 xx[1098] = xx[0];
15211 xx[1099] = xx[0];
15212 xx[1100] = xx[549] + xx[582] + xx[80] * (xx[588] - xx[525] * xx[14]);
15213 xx[1101] = xx[591] + xx[606];
15214 xx[1102] = xx[610] + xx[585];
15215 xx[1103] = xx[598] + xx[573];
15216 xx[1104] = xx[615] + xx[620];
15217 xx[1105] = xx[625] + xx[631];
15218 xx[1106] = xx[628] + xx[602];
15219 xx[1107] = xx[634] + xx[644];
15220 xx[1108] = xx[0];
15221 xx[1109] = xx[0];
15222 xx[1110] = xx[80] * (xx[649] - xx[569] * xx[367]) + xx[639] + xx[73];
15223 xx[1111] = xx[0];
15224 xx[1112] = xx[0];
15225 xx[1113] = xx[0];
15226 xx[1114] = xx[0];
15227 xx[1115] = xx[0];
15228 xx[1116] = xx[0];
15229 xx[1117] = xx[0];
15230 xx[1118] = xx[0];
15231 xx[1119] = xx[0];
15232 xx[1120] = xx[0];
15233 xx[1121] = - (xx[565] + xx[618] + xx[80] * (xx[662] + xx[501] * xx[568]));
15234 xx[1122] = - (xx[552] + xx[665]);
15235 xx[1123] = - (xx[659] + xx[652]);
15236 xx[1124] = - (xx[80] * (xx[686] - xx[692] * xx[373]) + xx[696] - xx[123]);
15237 xx[1125] = xx[0];
15238 xx[1126] = xx[0];
15239 xx[1127] = xx[0];
15240 xx[1128] = xx[0];
15241 xx[1129] = xx[0];
15242 xx[1130] = xx[0];
15243 xx[1131] = xx[0];
15244 xx[1132] = xx[0];
15245 xx[1133] = xx[550] + xx[510] + (xx[577] * xx[14] + xx[589]) * xx[80];
15246 xx[1134] = xx[592] + xx[607];
15247 xx[1135] = xx[611] + xx[586];
15248 xx[1136] = xx[599] + xx[574];
15249 xx[1137] = xx[616] + xx[621];
15250 xx[1138] = xx[626] + xx[632];
15251 xx[1139] = xx[629] + xx[603];
15252 xx[1140] = xx[635] + xx[645];
15253 xx[1141] = xx[0];
15254 xx[1142] = xx[0];
15255 xx[1143] = (xx[73] * xx[569] * xx[572] + xx[650]) * xx[80] + xx[640] + xx[72];
15256 xx[1144] = xx[0];
15257 xx[1145] = xx[0];
15258 xx[1146] = xx[0];
15259 xx[1147] = xx[0];
15260 xx[1148] = xx[0];
15261 xx[1149] = xx[0];
15262 xx[1150] = xx[0];
15263 xx[1151] = xx[0];
15264 xx[1152] = xx[0];
15265 xx[1153] = xx[0];
15266 xx[1154] = - (xx[566] + xx[619] + (xx[663] - xx[501] * xx[614]) * xx[80]);
15267 xx[1155] = - (xx[553] + xx[666]);
15268 xx[1156] = - (xx[660] + xx[653]);
15269 xx[1157] = - ((xx[687] - xx[123] * xx[692] * xx[695]) * xx[80] + xx[697] + xx
15270 [102]);
15271 xx[1158] = xx[0];
15272 xx[1159] = xx[0];
15273 xx[1160] = xx[0];
15274 xx[1161] = xx[0];
15275 xx[1162] = xx[0];
15276 xx[1163] = xx[0];
15277 xx[1164] = xx[0];
15278 xx[1165] = xx[0];
15279 xx[1166] = xx[551] + (xx[583] * xx[14] + xx[590]) * xx[80];
15280 xx[1167] = xx[593] + xx[608];
15281 xx[1168] = xx[612] + xx[587];
15282 xx[1169] = xx[600] + xx[575];
15283 xx[1170] = xx[617] + xx[622];
15284 xx[1171] = xx[627] + xx[633];
15285 xx[1172] = xx[630] + xx[604];
15286 xx[1173] = xx[636] + xx[646];
15287 xx[1174] = xx[0];
15288 xx[1175] = xx[0];
15289 xx[1176] = (xx[569] * xx[372] + xx[651]) * xx[80] + xx[641];
15290 xx[1177] = xx[0];
15291 xx[1178] = xx[0];
15292 xx[1179] = xx[0];
15293 xx[1180] = xx[0];
15294 xx[1181] = xx[0];
15295 xx[1182] = xx[0];
15296 xx[1183] = xx[0];
15297 xx[1184] = xx[0];
15298 xx[1185] = xx[0];
15299 xx[1186] = xx[0];
15300 xx[1187] = - (xx[567] + (xx[501] * xx[623] + xx[664]) * xx[80]);
15301 xx[1188] = - (xx[554] + xx[667]);
15302 xx[1189] = - (xx[661] + xx[654]);
15303 xx[1190] = - ((xx[692] * xx[412] + xx[688]) * xx[80] + xx[698]);
15304 xx[1191] = xx[0];
15305 xx[1192] = xx[0];
15306 xx[1193] = xx[0];
15307 xx[1194] = xx[0];
15308 xx[1195] = xx[0];
15309 xx[1196] = xx[0];
15310 xx[1197] = xx[0];
15311 xx[1198] = xx[0];
15312 xx[1199] = xx[681] + xx[716] + xx[80] * (xx[726] - xx[674] * xx[14]);
15313 xx[1200] = xx[742] + xx[748];
15314 xx[1201] = xx[739] + xx[792];
15315 xx[1202] = xx[723] + xx[707];
15316 xx[1203] = xx[795] + xx[801];
15317 xx[1204] = xx[798] + xx[807];
15318 xx[1205] = xx[804] + xx[734];
15319 xx[1206] = xx[810] + xx[816];
15320 xx[1207] = xx[0];
15321 xx[1208] = xx[0];
15322 xx[1209] = xx[0];
15323 xx[1210] = xx[80] * (xx[819] - xx[703] * xx[467]) + xx[813] + xx[73];
15324 xx[1211] = xx[0];
15325 xx[1212] = xx[0];
15326 xx[1213] = xx[0];
15327 xx[1214] = xx[0];
15328 xx[1215] = xx[0];
15329 xx[1216] = xx[0];
15330 xx[1217] = xx[0];
15331 xx[1218] = xx[0];
15332 xx[1219] = xx[0];
15333 xx[1220] = xx[0];
15334 xx[1221] = xx[0];
15335 xx[1222] = xx[0];
15336 xx[1223] = xx[0];
15337 xx[1224] = - (xx[699] + xx[745] + xx[80] * (xx[832] - xx[638] * xx[702]));
15338 xx[1225] = - (xx[689] + xx[843]);
15339 xx[1226] = - (xx[829] + xx[822]);
15340 xx[1227] = - (xx[80] * (xx[849] - xx[839] * xx[500]) + xx[852] - xx[123]);
15341 xx[1228] = xx[0];
15342 xx[1229] = xx[0];
15343 xx[1230] = xx[0];
15344 xx[1231] = xx[0];
15345 xx[1232] = xx[682] + xx[673] + (xx[711] * xx[14] + xx[727]) * xx[80];
15346 xx[1233] = xx[743] + xx[749];
15347 xx[1234] = xx[740] + xx[793];
15348 xx[1235] = xx[724] + xx[708];
15349 xx[1236] = xx[796] + xx[802];
15350 xx[1237] = xx[799] + xx[808];
15351 xx[1238] = xx[805] + xx[735];
15352 xx[1239] = xx[811] + xx[817];
15353 xx[1240] = xx[0];
15354 xx[1241] = xx[0];
15355 xx[1242] = xx[0];
15356 xx[1243] = (xx[73] * xx[703] * xx[706] + xx[820]) * xx[80] + xx[814] + xx[72];
15357 xx[1244] = xx[0];
15358 xx[1245] = xx[0];
15359 xx[1246] = xx[0];
15360 xx[1247] = xx[0];
15361 xx[1248] = xx[0];
15362 xx[1249] = xx[0];
15363 xx[1250] = xx[0];
15364 xx[1251] = xx[0];
15365 xx[1252] = xx[0];
15366 xx[1253] = xx[0];
15367 xx[1254] = xx[0];
15368 xx[1255] = xx[0];
15369 xx[1256] = xx[0];
15370 xx[1257] = - (xx[700] + xx[751] + (xx[638] * xx[737] + xx[833]) * xx[80]);
15371 xx[1258] = - (xx[690] + xx[844]);
15372 xx[1259] = - (xx[830] + xx[823]);
15373 xx[1260] = - ((xx[850] - xx[123] * xx[839] * xx[842]) * xx[80] + xx[853] + xx
15374 [102]);
15375 xx[1261] = xx[0];
15376 xx[1262] = xx[0];
15377 xx[1263] = xx[0];
15378 xx[1264] = xx[0];
15379 xx[1265] = xx[683] + (xx[717] * xx[14] + xx[728]) * xx[80];
15380 xx[1266] = xx[744] + xx[750];
15381 xx[1267] = xx[741] + xx[794];
15382 xx[1268] = xx[725] + xx[709];
15383 xx[1269] = xx[797] + xx[803];
15384 xx[1270] = xx[800] + xx[809];
15385 xx[1271] = xx[806] + xx[736];
15386 xx[1272] = xx[812] + xx[818];
15387 xx[1273] = xx[0];
15388 xx[1274] = xx[0];
15389 xx[1275] = xx[0];
15390 xx[1276] = (xx[703] * xx[499] + xx[821]) * xx[80] + xx[815];
15391 xx[1277] = xx[0];
15392 xx[1278] = xx[0];
15393 xx[1279] = xx[0];
15394 xx[1280] = xx[0];
15395 xx[1281] = xx[0];
15396 xx[1282] = xx[0];
15397 xx[1283] = xx[0];
15398 xx[1284] = xx[0];
15399 xx[1285] = xx[0];
15400 xx[1286] = xx[0];
15401 xx[1287] = xx[0];
15402 xx[1288] = xx[0];
15403 xx[1289] = xx[0];
15404 xx[1290] = - (xx[701] + (xx[834] - xx[638] * xx[788]) * xx[80]);
15405 xx[1291] = - (xx[691] + xx[845]);
15406 xx[1292] = - (xx[831] + xx[824]);
15407 xx[1293] = - ((xx[839] * xx[576] + xx[851]) * xx[80] + xx[854]);
15408 xx[1294] = - (xx[855] + xx[866] + xx[80] * (xx[872] + xx[721] * xx[848]));
15409 xx[1295] = - (xx[752] + xx[883]);
15410 xx[1296] = - (xx[869] + xx[859]);
15411 xx[1297] = - (xx[80] * (xx[889] - xx[879] * xx[605]) + xx[892] - xx[123]);
15412 xx[1298] = xx[146] + xx[773] + xx[80] * (xx[777] - xx[248] * xx[14]);
15413 xx[1299] = xx[774] + xx[263];
15414 xx[1300] = xx[784] + xx[46];
15415 xx[1301] = xx[139] + xx[68];
15416 xx[1302] = xx[183] + xx[756];
15417 xx[1303] = xx[759] + xx[886];
15418 xx[1304] = xx[780] + xx[153];
15419 xx[1305] = xx[770] + xx[136];
15420 xx[1306] = xx[0];
15421 xx[1307] = xx[0];
15422 xx[1308] = xx[0];
15423 xx[1309] = xx[0];
15424 xx[1310] = xx[80] * (xx[895] - xx[24] * xx[44]) + xx[26] + xx[80] * (xx[173] +
15425 xx[349] * xx[75]) + xx[73];
15426 xx[1311] = xx[0];
15427 xx[1312] = xx[0];
15428 xx[1313] = xx[0];
15429 xx[1314] = xx[0];
15430 xx[1315] = xx[0];
15431 xx[1316] = xx[0];
15432 xx[1317] = xx[0];
15433 xx[1318] = xx[0];
15434 xx[1319] = xx[0];
15435 xx[1320] = xx[0];
15436 xx[1321] = xx[0];
15437 xx[1322] = xx[0];
15438 xx[1323] = xx[0];
15439 xx[1324] = xx[0];
15440 xx[1325] = xx[0];
15441 xx[1326] = xx[0];
15442 xx[1327] = - (xx[856] + xx[867] + (xx[873] - xx[721] * xx[858]) * xx[80]);
15443 xx[1328] = - (xx[753] + xx[884]);
15444 xx[1329] = - (xx[870] + xx[860]);
15445 xx[1330] = - ((xx[890] - xx[123] * xx[879] * xx[882]) * xx[80] + xx[893] + xx
15446 [102]);
15447 xx[1331] = xx[147] + xx[157] + (xx[259] * xx[14] + xx[778]) * xx[80];
15448 xx[1332] = xx[775] + xx[264];
15449 xx[1333] = xx[785] + xx[47];
15450 xx[1334] = xx[140] + xx[69];
15451 xx[1335] = xx[184] + xx[757];
15452 xx[1336] = xx[760] + xx[887];
15453 xx[1337] = xx[781] + xx[154];
15454 xx[1338] = xx[771] + xx[137];
15455 xx[1339] = xx[0];
15456 xx[1340] = xx[0];
15457 xx[1341] = xx[0];
15458 xx[1342] = xx[0];
15459 xx[1343] = (xx[24] * xx[64] + xx[896]) * xx[80] - xx[40] + (xx[349] * xx[82] +
15460 xx[174]) * xx[80] + xx[72];
15461 xx[1344] = xx[0];
15462 xx[1345] = xx[0];
15463 xx[1346] = xx[0];
15464 xx[1347] = xx[0];
15465 xx[1348] = xx[0];
15466 xx[1349] = xx[0];
15467 xx[1350] = xx[0];
15468 xx[1351] = xx[0];
15469 xx[1352] = xx[0];
15470 xx[1353] = xx[0];
15471 xx[1354] = xx[0];
15472 xx[1355] = xx[0];
15473 xx[1356] = xx[0];
15474 xx[1357] = xx[0];
15475 xx[1358] = xx[0];
15476 xx[1359] = xx[0];
15477 xx[1360] = - (xx[857] + (xx[874] - xx[721] * xx[868]) * xx[80]);
15478 xx[1361] = - (xx[754] + xx[885]);
15479 xx[1362] = - (xx[871] + xx[861]);
15480 xx[1363] = - ((xx[879] * xx[624] + xx[891]) * xx[80] + xx[894]);
15481 xx[1364] = xx[148] + (xx[769] * xx[14] + xx[779]) * xx[80];
15482 xx[1365] = xx[776] + xx[265];
15483 xx[1366] = xx[786] + xx[48];
15484 xx[1367] = xx[141] + xx[70];
15485 xx[1368] = xx[185] + xx[758];
15486 xx[1369] = xx[761] + xx[888];
15487 xx[1370] = xx[782] + xx[155];
15488 xx[1371] = xx[772] + xx[138];
15489 xx[1372] = xx[0];
15490 xx[1373] = xx[0];
15491 xx[1374] = xx[0];
15492 xx[1375] = xx[0];
15493 xx[1376] = (xx[24] * xx[42] + xx[897]) * xx[80] + (xx[175] - xx[349] * xx[83])
15494 * xx[80];
15495 xx[1377] = xx[0];
15496 xx[1378] = xx[0];
15497 xx[1379] = xx[0];
15498 xx[1380] = xx[0];
15499 xx[1381] = xx[0];
15500 xx[1382] = xx[0];
15501 xx[1383] = xx[0];
15502 xx[1384] = xx[0];
15503 xx[1385] = xx[0];
15504 xx[1386] = xx[0];
15505 xx[1387] = xx[0];
15506 xx[1388] = xx[0];
15507 xx[1389] = xx[0];
15508 xx[1390] = xx[0];
15509 xx[1391] = xx[0];
15510 xx[1392] = xx[0];
15511 pm_math_quatXform(xx + 353, xx + 84, xx + 46);
15512 pm_math_quatXform(xx + 349, xx + 210, xx + 68);
15513 xx[136] = - xx[236];
15514 xx[137] = xx[200];
15515 xx[138] = - xx[233];
15516 pm_math_quatXform(xx + 320, xx + 136, xx + 139);
15517 xx[136] = xx[220];
15518 xx[137] = xx[235];
15519 xx[138] = xx[238];
15520 pm_math_quatXform(xx + 287, xx + 136, xx + 146);
15521 pm_math_quatXform(xx + 283, xx + 245, xx + 136);
15522 xx[24] = xx[131] * xx[35] - xx[135] * xx[32];
15523 xx[149] = xx[80] * xx[24] * xx[35] + xx[9];
15524 xx[150] = xx[80] * xx[24] * xx[32] + xx[135];
15525 xx[151] = xx[11] - (xx[32] * xx[19] * xx[32] + xx[19] * xx[35] * xx[35]) * xx
15526 [80];
15527 pm_math_quatXform(xx + 49, xx + 149, xx + 31);
15528 xx[24] = xx[139] + xx[146] + xx[136] + xx[31] - xx[43] - xx[8];
15529 pm_math_quatXform(xx + 416, xx + 267, xx + 149);
15530 pm_math_quatXform(xx + 402, xx + 384, xx + 152);
15531 xx[26] = xx[266] * xx[188] + xx[270] * xx[193];
15532 xx[155] = xx[80] * xx[26] * xx[193] + xx[59];
15533 xx[156] = xx[80] * xx[26] * xx[188] - xx[266];
15534 xx[157] = (xx[188] * xx[61] * xx[188] + xx[61] * xx[193] * xx[193]) * xx[80] -
15535 xx[71];
15536 pm_math_quatXform(xx + 91, xx + 155, xx + 173);
15537 xx[26] = xx[140] + xx[147] + xx[137] + xx[32] - xx[98] + xx[23];
15538 xx[31] = xx[141] + xx[148] + xx[138] + xx[33] - xx[34] + xx[27];
15539 pm_math_quatXform(xx + 433, xx + 84, xx + 136);
15540 pm_math_quatXform(xx + 349, xx + 447, xx + 139);
15541 pm_math_quatXform(xx + 555, xx + 267, xx + 146);
15542 pm_math_quatXform(xx + 540, xx + 526, xx + 155);
15543 xx[32] = xx[410] * xx[252] - xx[409] * xx[366];
15544 xx[179] = xx[80] * xx[32] * xx[366] + xx[39];
15545 xx[180] = xx[80] * xx[32] * xx[252] - xx[410];
15546 xx[181] = xx[89] - (xx[252] * xx[107] * xx[252] + xx[107] * xx[366] * xx[366])
15547 * xx[80];
15548 pm_math_quatXform(xx + 142, xx + 179, xx + 182);
15549 pm_math_quatXform(xx + 569, xx + 84, xx + 179);
15550 pm_math_quatXform(xx + 349, xx + 579, xx + 187);
15551 pm_math_quatXform(xx + 692, xx + 267, xx + 190);
15552 pm_math_quatXform(xx + 676, xx + 656, xx + 210);
15553 xx[32] = xx[547] * xx[440] - xx[548] * xx[383];
15554 xx[215] = xx[80] * xx[32] * xx[440] + xx[130];
15555 xx[216] = xx[80] * xx[32] * xx[383] + xx[548];
15556 xx[217] = (xx[383] * xx[162] * xx[383] + xx[162] * xx[440] * xx[440]) * xx[80]
15557 - xx[163];
15558 pm_math_quatXform(xx + 158, xx + 215, xx + 235);
15559 pm_math_quatXform(xx + 703, xx + 84, xx + 215);
15560 pm_math_quatXform(xx + 349, xx + 713, xx + 244);
15561 pm_math_quatXform(xx + 839, xx + 267, xx + 247);
15562 pm_math_quatXform(xx + 835, xx + 826, xx + 258);
15563 xx[32] = xx[684] * xx[578] - xx[685] * xx[512];
15564 xx[263] = xx[80] * xx[32] * xx[578] + xx[196];
15565 xx[264] = xx[80] * xx[32] * xx[512] + xx[685];
15566 xx[265] = (xx[512] * xx[197] * xx[512] + xx[197] * xx[578] * xx[578]) * xx[80]
15567 - xx[206];
15568 pm_math_quatXform(xx + 202, xx + 263, xx + 271);
15569 pm_math_quatXform(xx + 333, xx + 84, xx + 263);
15570 pm_math_quatXform(xx + 349, xx + 765, xx + 274);
15571 pm_math_quatXform(xx + 879, xx + 267, xx + 277);
15572 pm_math_quatXform(xx + 875, xx + 863, xx + 283);
15573 xx[32] = xx[747] * xx[613] + xx[746] * xx[648];
15574 xx[286] = xx[194] - xx[80] * xx[32] * xx[648];
15575 xx[287] = xx[747] - xx[80] * xx[32] * xx[613];
15576 xx[288] = (xx[613] * xx[221] * xx[613] + xx[221] * xx[648] * xx[648]) * xx[80]
15577 - xx[222];
15578 pm_math_quatXform(xx + 226, xx + 286, xx + 289);
15579 xx[329] = - (xx[46] + xx[68] + xx[24] - (xx[149] + xx[152] + xx[173] - xx[97])
15580 - xx[78]);
15581 xx[330] = - (xx[47] + xx[69] + xx[26] - (xx[150] + xx[153] + xx[174] - xx[101])
15582 - xx[88]);
15583 xx[331] = - (xx[48] + xx[70] + xx[31] - (xx[151] + xx[154] + xx[175] - xx[36])
15584 + xx[37]);
15585 xx[332] = - (xx[136] + xx[139] + xx[24] - (xx[146] + xx[155] + xx[182] - xx
15586 [120]) - xx[38]);
15587 xx[333] = - (xx[137] + xx[140] + xx[26] - (xx[147] + xx[156] + xx[183] - xx
15588 [121]) - xx[118]);
15589 xx[334] = - (xx[138] + xx[141] + xx[31] - (xx[148] + xx[157] + xx[184] - xx
15590 [124]) - xx[6]);
15591 xx[335] = - (xx[179] + xx[187] + xx[24] - (xx[190] + xx[210] + xx[235] - xx
15592 [170]) + xx[129]);
15593 xx[336] = - (xx[180] + xx[188] + xx[26] - (xx[191] + xx[211] + xx[236] - xx
15594 [171]) - xx[164]);
15595 xx[337] = - (xx[181] + xx[189] + xx[31] - (xx[192] + xx[212] + xx[237] - xx
15596 [172]) + xx[166]);
15597 xx[338] = - (xx[215] + xx[244] + xx[24] - (xx[247] + xx[258] + xx[271] - xx
15598 [209]) + xx[207]);
15599 xx[339] = - (xx[216] + xx[245] + xx[26] - (xx[248] + xx[259] + xx[272] - xx
15600 [213]) - xx[208]);
15601 xx[340] = - (xx[217] + xx[246] + xx[31] - (xx[249] + xx[260] + xx[273] - xx
15602 [214]) + xx[195]);
15603 xx[341] = - (xx[263] + xx[274] + xx[24] - (xx[277] + xx[283] + xx[289] - xx
15604 [230]) - xx[201]);
15605 xx[342] = - (xx[264] + xx[275] + xx[26] - (xx[278] + xx[284] + xx[290] - xx
15606 [231]) - xx[223]);
15607 xx[343] = - (xx[265] + xx[276] + xx[31] - (xx[279] + xx[285] + xx[291] - xx
15608 [232]) + xx[58]);
15609 memcpy(xx + 1393, xx + 898, 495 * sizeof(double));
15610 factorAndSolveWide(15, 33, xx + 1393, xx + 344, xx + 380, ii + 0, xx + 329,
15611 xx[16], xx + 549);
15612 xx[24] = xx[17] + xx[549];
15613 xx[136] = xx[718];
15614 xx[137] = xx[730];
15615 xx[138] = xx[733];
15616 xx[139] = xx[732];
15617 pm_math_quatDeriv(xx + 136, xx + 550, xx + 146);
15618 xx[17] = xx[718] + xx[146];
15619 xx[26] = xx[730] + xx[147];
15620 xx[31] = xx[733] + xx[148];
15621 xx[32] = xx[732] + xx[149];
15622 xx[33] = sqrt(xx[17] * xx[17] + xx[26] * xx[26] + xx[31] * xx[31] + xx[32] *
15623 xx[32]);
15624 if (xx[28] > xx[33])
15625 xx[33] = xx[28];
15626 xx[35] = xx[17] / xx[33];
15627 xx[17] = xx[26] / xx[33];
15628 xx[26] = xx[31] / xx[33];
15629 xx[31] = xx[32] / xx[33];
15630 xx[32] = xx[18] + xx[553];
15631 xx[136] = xx[53];
15632 xx[137] = xx[29];
15633 xx[138] = xx[66];
15634 xx[139] = xx[65];
15635 pm_math_quatDeriv(xx + 136, xx + 554, xx + 146);
15636 xx[18] = xx[53] + xx[146];
15637 xx[33] = xx[29] + xx[147];
15638 xx[29] = xx[66] + xx[148];
15639 xx[40] = xx[65] + xx[149];
15640 xx[42] = sqrt(xx[18] * xx[18] + xx[33] * xx[33] + xx[29] * xx[29] + xx[40] *
15641 xx[40]);
15642 if (xx[28] > xx[42])
15643 xx[42] = xx[28];
15644 xx[44] = xx[18] / xx[42];
15645 xx[18] = xx[33] / xx[42];
15646 xx[33] = xx[29] / xx[42];
15647 xx[29] = xx[40] / xx[42];
15648 xx[136] = xx[76];
15649 xx[137] = xx[45];
15650 xx[138] = xx[81];
15651 xx[139] = xx[77];
15652 pm_math_quatDeriv(xx + 136, xx + 557, xx + 146);
15653 xx[40] = xx[76] + xx[146];
15654 xx[42] = xx[45] + xx[147];
15655 xx[45] = xx[81] + xx[148];
15656 xx[46] = xx[77] + xx[149];
15657 xx[47] = sqrt(xx[40] * xx[40] + xx[42] * xx[42] + xx[45] * xx[45] + xx[46] *
15658 xx[46]);
15659 if (xx[28] > xx[47])
15660 xx[47] = xx[28];
15661 xx[48] = xx[40] / xx[47];
15662 xx[40] = xx[42] / xx[47];
15663 xx[42] = xx[45] / xx[47];
15664 xx[45] = xx[46] / xx[47];
15665 xx[46] = xx[132] + xx[560];
15666 xx[47] = xx[109] + xx[561];
15667 xx[53] = xx[198] + xx[562];
15668 xx[64] = xx[328] + xx[563];
15669 xx[65] = xx[442] + xx[564];
15670 xx[66] = xx[668] + xx[565];
15671 xx[68] = xx[219] + xx[566];
15672 xx[136] = xx[397];
15673 xx[137] = xx[374];
15674 xx[138] = xx[411];
15675 xx[139] = xx[398];
15676 pm_math_quatDeriv(xx + 136, xx + 567, xx + 146);
15677 xx[69] = xx[397] + xx[146];
15678 xx[70] = xx[374] + xx[147];
15679 xx[75] = xx[411] + xx[148];
15680 xx[76] = xx[398] + xx[149];
15681 xx[77] = sqrt(xx[69] * xx[69] + xx[70] * xx[70] + xx[75] * xx[75] + xx[76] *
15682 xx[76]);
15683 if (xx[28] > xx[77])
15684 xx[77] = xx[28];
15685 xx[81] = xx[69] / xx[77];
15686 xx[69] = xx[70] / xx[77];
15687 xx[70] = xx[75] / xx[77];
15688 xx[75] = xx[76] / xx[77];
15689 xx[76] = xx[186] + xx[570];
15690 xx[136] = xx[234];
15691 xx[137] = xx[250];
15692 xx[138] = xx[313];
15693 xx[139] = xx[253];
15694 pm_math_quatDeriv(xx + 136, xx + 571, xx + 146);
15695 xx[77] = xx[234] + xx[146];
15696 xx[82] = xx[250] + xx[147];
15697 xx[83] = xx[313] + xx[148];
15698 xx[99] = xx[253] + xx[149];
15699 xx[100] = sqrt(xx[77] * xx[77] + xx[82] * xx[82] + xx[83] * xx[83] + xx[99] *
15700 xx[99]);
15701 if (xx[28] > xx[100])
15702 xx[100] = xx[28];
15703 xx[103] = xx[77] / xx[100];
15704 xx[77] = xx[82] / xx[100];
15705 xx[82] = xx[83] / xx[100];
15706 xx[83] = xx[99] / xx[100];
15707 xx[99] = xx[368] + xx[574];
15708 xx[136] = xx[492];
15709 xx[137] = xx[511];
15710 xx[138] = xx[534];
15711 xx[139] = xx[533];
15712 pm_math_quatDeriv(xx + 136, xx + 575, xx + 146);
15713 xx[100] = xx[492] + xx[146];
15714 xx[109] = xx[511] + xx[147];
15715 xx[110] = xx[534] + xx[148];
15716 xx[111] = xx[533] + xx[149];
15717 xx[132] = sqrt(xx[100] * xx[100] + xx[109] * xx[109] + xx[110] * xx[110] + xx
15718 [111] * xx[111]);
15719 if (xx[28] > xx[132])
15720 xx[132] = xx[28];
15721 xx[133] = xx[100] / xx[132];
15722 xx[100] = xx[109] / xx[132];
15723 xx[109] = xx[110] / xx[132];
15724 xx[110] = xx[111] / xx[132];
15725 xx[111] = xx[491] + xx[578];
15726 xx[136] = xx[655];
15727 xx[137] = xx[669];
15728 xx[138] = xx[710];
15729 xx[139] = xx[671];
15730 pm_math_quatDeriv(xx + 136, xx + 579, xx + 146);
15731 xx[132] = xx[655] + xx[146];
15732 xx[134] = xx[669] + xx[147];
15733 xx[136] = xx[710] + xx[148];
15734 xx[137] = xx[671] + xx[149];
15735 xx[138] = sqrt(xx[132] * xx[132] + xx[134] * xx[134] + xx[136] * xx[136] + xx
15736 [137] * xx[137]);
15737 if (xx[28] > xx[138])
15738 xx[138] = xx[28];
15739 xx[28] = xx[132] / xx[138];
15740 xx[132] = xx[134] / xx[138];
15741 xx[134] = xx[136] / xx[138];
15742 xx[136] = xx[137] / xx[138];
15743 xx[792] = state[0];
15744 xx[793] = state[1];
15745 xx[794] = state[2];
15746 xx[795] = state[3];
15747 xx[796] = state[4];
15748 xx[797] = state[5];
15749 xx[798] = state[6];
15750 xx[799] = state[7];
15751 xx[800] = state[8];
15752 xx[801] = state[9];
15753 xx[802] = state[10];
15754 xx[803] = state[11];
15755 xx[804] = state[12];
15756 xx[805] = state[13];
15757 xx[806] = xx[24];
15758 xx[807] = state[15];
15759 xx[808] = xx[35];
15760 xx[809] = xx[17];
15761 xx[810] = xx[26];
15762 xx[811] = xx[31];
15763 xx[812] = state[20];
15764 xx[813] = state[21];
15765 xx[814] = state[22];
15766 xx[815] = state[23];
15767 xx[816] = state[24];
15768 xx[817] = xx[32];
15769 xx[818] = state[26];
15770 xx[819] = xx[44];
15771 xx[820] = xx[18];
15772 xx[821] = xx[33];
15773 xx[822] = xx[29];
15774 xx[823] = state[31];
15775 xx[824] = state[32];
15776 xx[825] = state[33];
15777 xx[826] = xx[48];
15778 xx[827] = xx[40];
15779 xx[828] = xx[42];
15780 xx[829] = xx[45];
15781 xx[830] = state[38];
15782 xx[831] = state[39];
15783 xx[832] = state[40];
15784 xx[833] = xx[46];
15785 xx[834] = state[42];
15786 xx[835] = xx[47];
15787 xx[836] = state[44];
15788 xx[837] = xx[53];
15789 xx[838] = state[46];
15790 xx[839] = xx[64];
15791 xx[840] = state[48];
15792 xx[841] = xx[65];
15793 xx[842] = state[50];
15794 xx[843] = xx[66];
15795 xx[844] = state[52];
15796 xx[845] = state[53];
15797 xx[846] = state[54];
15798 xx[847] = xx[68];
15799 xx[848] = state[56];
15800 xx[849] = xx[81];
15801 xx[850] = xx[69];
15802 xx[851] = xx[70];
15803 xx[852] = xx[75];
15804 xx[853] = state[61];
15805 xx[854] = state[62];
15806 xx[855] = state[63];
15807 xx[856] = state[64];
15808 xx[857] = state[65];
15809 xx[858] = xx[76];
15810 xx[859] = state[67];
15811 xx[860] = xx[103];
15812 xx[861] = xx[77];
15813 xx[862] = xx[82];
15814 xx[863] = xx[83];
15815 xx[864] = state[72];
15816 xx[865] = state[73];
15817 xx[866] = state[74];
15818 xx[867] = state[75];
15819 xx[868] = state[76];
15820 xx[869] = xx[99];
15821 xx[870] = state[78];
15822 xx[871] = xx[133];
15823 xx[872] = xx[100];
15824 xx[873] = xx[109];
15825 xx[874] = xx[110];
15826 xx[875] = state[83];
15827 xx[876] = state[84];
15828 xx[877] = state[85];
15829 xx[878] = state[86];
15830 xx[879] = state[87];
15831 xx[880] = xx[111];
15832 xx[881] = state[89];
15833 xx[882] = xx[28];
15834 xx[883] = xx[132];
15835 xx[884] = xx[134];
15836 xx[885] = xx[136];
15837 xx[886] = state[94];
15838 xx[887] = state[95];
15839 xx[888] = state[96];
15840 xx[137] = xx[47] * xx[2];
15841 xx[47] = cos(xx[137]);
15842 xx[138] = xx[32] * xx[2];
15843 xx[32] = sin(xx[138]);
15844 xx[139] = cos(xx[138]);
15845 xx[146] = - (xx[32] * xx[7] - xx[3] * xx[139]);
15846 xx[147] = - (xx[139] * xx[14] + xx[15] * xx[32]);
15847 xx[148] = xx[32] * xx[14] - xx[15] * xx[139];
15848 xx[149] = xx[3] * xx[32] + xx[139] * xx[7];
15849 xx[150] = xx[21] * xx[29] - xx[25] * xx[44];
15850 xx[151] = - (xx[21] * xx[33] + xx[25] * xx[18]);
15851 xx[152] = - (xx[25] * xx[33] - xx[21] * xx[18]);
15852 xx[153] = - (xx[21] * xx[44] + xx[25] * xx[29]);
15853 pm_math_quatCompose(xx + 146, xx + 150, xx + 154);
15854 xx[179] = xx[25] * xx[45] - xx[41] * xx[48];
15855 xx[180] = xx[25] * xx[42] - xx[41] * xx[40];
15856 xx[181] = - (xx[41] * xx[42] + xx[25] * xx[40]);
15857 xx[182] = - (xx[41] * xx[45] + xx[25] * xx[48]);
15858 pm_math_quatCompose(xx + 154, xx + 179, xx + 183);
15859 xx[3] = xx[46] * xx[2];
15860 xx[7] = sin(xx[3]);
15861 xx[14] = xx[57] * xx[7];
15862 xx[15] = xx[56] * xx[14];
15863 xx[18] = xx[63] * xx[7];
15864 xx[7] = xx[62] * xx[18];
15865 xx[29] = cos(xx[3]);
15866 xx[3] = xx[62] * xx[29];
15867 xx[33] = xx[15] + xx[7] - xx[3];
15868 xx[40] = xx[62] * xx[14];
15869 xx[14] = xx[56] * xx[29];
15870 xx[29] = xx[56] * xx[18];
15871 xx[18] = xx[40] + xx[14] - xx[29];
15872 xx[42] = xx[14] - xx[40] + xx[29];
15873 xx[14] = xx[7] + xx[3] + xx[15];
15874 xx[187] = xx[33];
15875 xx[188] = xx[18];
15876 xx[189] = xx[42];
15877 xx[190] = xx[14];
15878 pm_math_quatCompose(xx + 183, xx + 187, xx + 215);
15879 xx[3] = sin(xx[137]);
15880 xx[187] = xx[47] * xx[215] + xx[218] * xx[3];
15881 xx[188] = xx[47] * xx[216] - xx[217] * xx[3];
15882 xx[189] = xx[47] * xx[217] + xx[216] * xx[3];
15883 xx[190] = xx[47] * xx[218] - xx[215] * xx[3];
15884 pm_math_quatXform(xx + 187, xx + 84, xx + 44);
15885 xx[7] = xx[87] * xx[3];
15886 xx[15] = xx[90] * xx[3];
15887 xx[173] = - (0.02539999999966131 + xx[80] * (xx[47] * xx[7] + xx[15] * xx[3]));
15888 xx[174] = (xx[7] * xx[3] - xx[47] * xx[15]) * xx[80] - xx[87];
15889 xx[175] = xx[96];
15890 pm_math_quatXform(xx + 215, xx + 173, xx + 187);
15891 xx[3] = 0.1158410329997535;
15892 xx[7] = xx[105] * xx[42];
15893 xx[173] = xx[18];
15894 xx[174] = xx[42];
15895 xx[175] = xx[14];
15896 xx[15] = xx[104] * xx[14] - xx[18] * xx[105];
15897 xx[14] = xx[104] * xx[42];
15898 xx[190] = xx[7];
15899 xx[191] = xx[15];
15900 xx[192] = - xx[14];
15901 pm_math_cross3(xx + 173, xx + 190, xx + 198);
15902 xx[18] = 0.1002102452613437;
15903 xx[173] = - (xx[3] + (xx[7] * xx[33] + xx[198]) * xx[80]);
15904 xx[174] = xx[108] - (xx[33] * xx[15] + xx[199]) * xx[80];
15905 xx[175] = - (xx[18] + xx[80] * (xx[200] - xx[14] * xx[33]));
15906 pm_math_quatXform(xx + 183, xx + 173, xx + 190);
15907 pm_math_quatXform(xx + 179, xx + 112, xx + 173);
15908 xx[179] = xx[102] + xx[173];
15909 xx[180] = xx[123] + xx[174];
15910 xx[181] = xx[115] + xx[175];
15911 pm_math_quatXform(xx + 154, xx + 179, xx + 173);
15912 pm_math_quatXform(xx + 150, xx + 126, xx + 154);
15913 pm_math_quatXform(xx + 146, xx + 154, xx + 150);
15914 xx[7] = xx[131] * xx[32] - xx[135] * xx[139];
15915 xx[146] = xx[80] * xx[7] * xx[32] + xx[9];
15916 xx[147] = xx[80] * xx[7] * xx[139] + xx[135];
15917 xx[148] = xx[11] - (xx[139] * xx[19] * xx[139] + xx[19] * xx[32] * xx[32]) *
15918 xx[80];
15919 pm_math_quatXform(xx + 49, xx + 146, xx + 137);
15920 xx[7] = xx[190] + xx[173] + xx[150] + xx[137] - xx[43] - xx[8];
15921 xx[8] = xx[76] * xx[2];
15922 xx[11] = sin(xx[8]);
15923 xx[14] = cos(xx[8]);
15924 xx[47] = - (xx[225] * xx[11] + xx[14] * xx[125]);
15925 xx[48] = - (xx[241] * xx[14] - xx[11] * xx[242]);
15926 xx[49] = xx[241] * xx[11] + xx[14] * xx[242];
15927 xx[50] = xx[225] * xx[14] - xx[11] * xx[125];
15928 xx[146] = xx[21] * xx[83] - xx[25] * xx[103];
15929 xx[147] = - (xx[21] * xx[82] + xx[25] * xx[77]);
15930 xx[148] = - (xx[25] * xx[82] - xx[21] * xx[77]);
15931 xx[149] = - (xx[21] * xx[103] + xx[25] * xx[83]);
15932 pm_math_quatCompose(xx + 47, xx + 146, xx + 153);
15933 pm_math_quatXform(xx + 153, xx + 267, xx + 179);
15934 pm_math_quatXform(xx + 146, xx + 126, xx + 153);
15935 pm_math_quatXform(xx + 47, xx + 153, xx + 146);
15936 xx[8] = xx[266] * xx[14] + xx[270] * xx[11];
15937 xx[47] = xx[80] * xx[8] * xx[11] + xx[59];
15938 xx[48] = xx[80] * xx[8] * xx[14] - xx[266];
15939 xx[49] = (xx[14] * xx[61] * xx[14] + xx[61] * xx[11] * xx[11]) * xx[80] - xx
15940 [71];
15941 pm_math_quatXform(xx + 91, xx + 47, xx + 50);
15942 xx[8] = xx[191] + xx[174] + xx[151] + xx[138] - xx[98] + xx[23];
15943 xx[11] = xx[192] + xx[175] + xx[152] + xx[139] - xx[34] + xx[27];
15944 xx[14] = xx[53] * xx[2];
15945 xx[15] = sin(xx[14]);
15946 xx[19] = xx[62] * xx[15];
15947 xx[23] = cos(xx[14]);
15948 xx[14] = xx[62] * xx[23];
15949 xx[27] = xx[56] * xx[23];
15950 xx[23] = xx[56] * xx[15];
15951 xx[91] = xx[19] - xx[14];
15952 xx[92] = - (xx[27] + xx[23]);
15953 xx[93] = xx[23] - xx[27];
15954 xx[94] = - (xx[19] + xx[14]);
15955 pm_math_quatCompose(xx + 215, xx + 91, xx + 137);
15956 pm_math_quatXform(xx + 137, xx + 84, xx + 32);
15957 pm_math_quatXform(xx + 91, xx + 324, xx + 47);
15958 xx[91] = xx[243] - xx[47];
15959 xx[92] = - xx[48];
15960 xx[93] = xx[262] - xx[49];
15961 pm_math_quatXform(xx + 215, xx + 91, xx + 47);
15962 xx[14] = xx[68] * xx[2];
15963 xx[15] = sin(xx[14]);
15964 xx[19] = cos(xx[14]);
15965 xx[91] = - (xx[15] * xx[256] - xx[224] * xx[19]);
15966 xx[92] = - (xx[19] * xx[315] + xx[319] * xx[15]);
15967 xx[93] = xx[15] * xx[315] - xx[319] * xx[19];
15968 xx[94] = xx[224] * xx[15] + xx[19] * xx[256];
15969 xx[137] = xx[21] * xx[75] - xx[25] * xx[81];
15970 xx[138] = - (xx[21] * xx[70] + xx[25] * xx[69]);
15971 xx[139] = - (xx[25] * xx[70] - xx[21] * xx[69]);
15972 xx[140] = - (xx[21] * xx[81] + xx[25] * xx[75]);
15973 pm_math_quatCompose(xx + 91, xx + 137, xx + 68);
15974 pm_math_quatXform(xx + 68, xx + 267, xx + 75);
15975 pm_math_quatXform(xx + 137, xx + 126, xx + 68);
15976 pm_math_quatXform(xx + 91, xx + 68, xx + 81);
15977 xx[14] = xx[410] * xx[19] - xx[409] * xx[15];
15978 xx[68] = xx[80] * xx[14] * xx[15] + xx[39];
15979 xx[69] = xx[80] * xx[14] * xx[19] - xx[410];
15980 xx[70] = xx[89] - (xx[19] * xx[107] * xx[19] + xx[107] * xx[15] * xx[15]) *
15981 xx[80];
15982 pm_math_quatXform(xx + 142, xx + 68, xx + 91);
15983 xx[14] = xx[64] * xx[2];
15984 xx[15] = cos(xx[14]);
15985 xx[19] = xx[312] * xx[15];
15986 xx[23] = sin(xx[14]);
15987 xx[14] = xx[312] * xx[23];
15988 xx[27] = xx[379] * xx[23];
15989 xx[23] = xx[379] * xx[15];
15990 xx[68] = - (xx[19] + xx[14]);
15991 xx[69] = xx[27] - xx[23];
15992 xx[70] = - (xx[23] + xx[27]);
15993 xx[71] = xx[14] - xx[19];
15994 pm_math_quatCompose(xx + 215, xx + 68, xx + 137);
15995 pm_math_quatXform(xx + 137, xx + 84, xx + 141);
15996 pm_math_quatXform(xx + 68, xx + 456, xx + 137);
15997 xx[68] = - (xx[314] + xx[137]);
15998 xx[69] = - xx[138];
15999 xx[70] = xx[462] - xx[139];
16000 pm_math_quatXform(xx + 215, xx + 68, xx + 137);
16001 xx[14] = xx[99] * xx[2];
16002 xx[15] = sin(xx[14]);
16003 xx[19] = cos(xx[14]);
16004 xx[68] = - (xx[451] * xx[15] - xx[19] * xx[400]);
16005 xx[69] = - (xx[501] * xx[19] - xx[15] * xx[502]);
16006 xx[70] = xx[501] * xx[15] + xx[19] * xx[502];
16007 xx[71] = xx[15] * xx[400] + xx[451] * xx[19];
16008 xx[149] = xx[21] * xx[110] - xx[25] * xx[133];
16009 xx[150] = - (xx[21] * xx[109] + xx[25] * xx[100]);
16010 xx[151] = - (xx[25] * xx[109] - xx[21] * xx[100]);
16011 xx[152] = - (xx[21] * xx[133] + xx[25] * xx[110]);
16012 pm_math_quatCompose(xx + 68, xx + 149, xx + 153);
16013 pm_math_quatXform(xx + 153, xx + 267, xx + 98);
16014 pm_math_quatXform(xx + 149, xx + 126, xx + 153);
16015 pm_math_quatXform(xx + 68, xx + 153, xx + 149);
16016 xx[14] = xx[547] * xx[15] - xx[548] * xx[19];
16017 xx[68] = xx[80] * xx[14] * xx[15] + xx[130];
16018 xx[69] = xx[80] * xx[14] * xx[19] + xx[548];
16019 xx[70] = (xx[19] * xx[162] * xx[19] + xx[162] * xx[15] * xx[15]) * xx[80] -
16020 xx[163];
16021 pm_math_quatXform(xx + 158, xx + 68, xx + 152);
16022 xx[14] = xx[65] * xx[2];
16023 xx[15] = cos(xx[14]);
16024 xx[19] = xx[312] * xx[15];
16025 xx[23] = sin(xx[14]);
16026 xx[14] = xx[312] * xx[23];
16027 xx[27] = xx[379] * xx[15];
16028 xx[15] = xx[379] * xx[23];
16029 xx[68] = xx[19] + xx[14];
16030 xx[69] = xx[27] - xx[15];
16031 xx[70] = xx[27] + xx[15];
16032 xx[71] = xx[19] - xx[14];
16033 pm_math_quatCompose(xx + 215, xx + 68, xx + 155);
16034 pm_math_quatXform(xx + 155, xx + 84, xx + 159);
16035 pm_math_quatXform(xx + 68, xx + 595, xx + 155);
16036 xx[68] = - (xx[446] + xx[155]);
16037 xx[69] = - xx[156];
16038 xx[70] = xx[601] - xx[157];
16039 pm_math_quatXform(xx + 215, xx + 68, xx + 155);
16040 xx[14] = xx[111] * xx[2];
16041 xx[15] = sin(xx[14]);
16042 xx[19] = cos(xx[14]);
16043 xx[68] = - (xx[594] * xx[15] + xx[19] * xx[536]);
16044 xx[69] = - (xx[638] * xx[19] + xx[15] * xx[642]);
16045 xx[70] = xx[638] * xx[15] - xx[19] * xx[642];
16046 xx[71] = xx[594] * xx[19] - xx[15] * xx[536];
16047 xx[182] = xx[21] * xx[136] - xx[25] * xx[28];
16048 xx[183] = - (xx[21] * xx[134] + xx[25] * xx[132]);
16049 xx[184] = - (xx[25] * xx[134] - xx[21] * xx[132]);
16050 xx[185] = - (xx[21] * xx[28] + xx[25] * xx[136]);
16051 pm_math_quatCompose(xx + 68, xx + 182, xx + 190);
16052 pm_math_quatXform(xx + 190, xx + 267, xx + 27);
16053 pm_math_quatXform(xx + 182, xx + 126, xx + 109);
16054 pm_math_quatXform(xx + 68, xx + 109, xx + 132);
16055 xx[14] = xx[684] * xx[15] - xx[685] * xx[19];
16056 xx[68] = xx[80] * xx[14] * xx[15] + xx[196];
16057 xx[69] = xx[80] * xx[14] * xx[19] + xx[685];
16058 xx[70] = (xx[19] * xx[197] * xx[19] + xx[197] * xx[15] * xx[15]) * xx[80] -
16059 xx[206];
16060 pm_math_quatXform(xx + 202, xx + 68, xx + 109);
16061 xx[14] = xx[66] * xx[2];
16062 xx[15] = cos(xx[14]);
16063 xx[19] = sin(xx[14]);
16064 xx[68] = xx[15] * xx[215] + xx[218] * xx[19];
16065 xx[69] = xx[15] * xx[216] - xx[217] * xx[19];
16066 xx[70] = xx[15] * xx[217] + xx[216] * xx[19];
16067 xx[71] = xx[15] * xx[218] - xx[215] * xx[19];
16068 pm_math_quatXform(xx + 68, xx + 84, xx + 64);
16069 xx[14] = xx[54] * xx[19];
16070 xx[23] = xx[738] * xx[19];
16071 xx[68] = 0.02540000000681907 - xx[80] * (xx[14] * xx[19] - xx[15] * xx[23]);
16072 xx[69] = xx[738] - (xx[15] * xx[14] + xx[23] * xx[19]) * xx[80];
16073 xx[70] = xx[791];
16074 pm_math_quatXform(xx + 215, xx + 68, xx + 173);
16075 xx[14] = xx[24] * xx[2];
16076 xx[15] = sin(xx[14]);
16077 xx[19] = cos(xx[14]);
16078 xx[68] = - (xx[675] * xx[15] + xx[19] * xx[647]);
16079 xx[69] = - (xx[721] * xx[19] - xx[15] * xx[722]);
16080 xx[70] = xx[721] * xx[15] + xx[19] * xx[722];
16081 xx[71] = xx[675] * xx[19] - xx[15] * xx[647];
16082 xx[182] = xx[21] * xx[31] - xx[25] * xx[35];
16083 xx[183] = - (xx[21] * xx[26] + xx[25] * xx[17]);
16084 xx[184] = - (xx[25] * xx[26] - xx[21] * xx[17]);
16085 xx[185] = - (xx[21] * xx[35] + xx[25] * xx[31]);
16086 pm_math_quatCompose(xx + 68, xx + 182, xx + 190);
16087 pm_math_quatXform(xx + 190, xx + 267, xx + 197);
16088 pm_math_quatXform(xx + 182, xx + 126, xx + 190);
16089 pm_math_quatXform(xx + 68, xx + 190, xx + 182);
16090 xx[14] = xx[747] * xx[19] + xx[746] * xx[15];
16091 xx[68] = xx[194] - xx[80] * xx[14] * xx[15];
16092 xx[69] = xx[747] - xx[80] * xx[14] * xx[19];
16093 xx[70] = (xx[19] * xx[221] * xx[19] + xx[221] * xx[15] * xx[15]) * xx[80] -
16094 xx[222];
16095 pm_math_quatXform(xx + 226, xx + 68, xx + 190);
16096 xx[328] = fabs(xx[44] + xx[187] + xx[7] - (xx[179] + xx[146] + xx[50] - xx[97])
16097 - xx[78]);
16098 xx[329] = fabs(xx[45] + xx[188] + xx[8] - (xx[180] + xx[147] + xx[51] - xx[101])
16099 - xx[88]);
16100 xx[330] = fabs(xx[46] + xx[189] + xx[11] - (xx[181] + xx[148] + xx[52] - xx[36])
16101 + xx[37]);
16102 xx[331] = fabs(xx[32] + xx[47] + xx[7] - (xx[75] + xx[81] + xx[91] - xx[120])
16103 - xx[38]);
16104 xx[332] = fabs(xx[33] + xx[48] + xx[8] - (xx[76] + xx[82] + xx[92] - xx[121])
16105 - xx[118]);
16106 xx[333] = fabs(xx[34] + xx[49] + xx[11] - (xx[77] + xx[83] + xx[93] - xx[124])
16107 - xx[6]);
16108 xx[334] = fabs(xx[141] + xx[137] + xx[7] - (xx[98] + xx[149] + xx[152] - xx
16109 [170]) + xx[129]);
16110 xx[335] = fabs(xx[142] + xx[138] + xx[8] - (xx[99] + xx[150] + xx[153] - xx
16111 [171]) - xx[164]);
16112 xx[336] = fabs(xx[143] + xx[139] + xx[11] - (xx[100] + xx[151] + xx[154] - xx
16113 [172]) + xx[166]);
16114 xx[337] = fabs(xx[159] + xx[155] + xx[7] - (xx[27] + xx[132] + xx[109] - xx
16115 [209]) + xx[207]);
16116 xx[338] = fabs(xx[160] + xx[156] + xx[8] - (xx[28] + xx[133] + xx[110] - xx
16117 [213]) - xx[208]);
16118 xx[339] = fabs(xx[161] + xx[157] + xx[11] - (xx[29] + xx[134] + xx[111] - xx
16119 [214]) + xx[195]);
16120 xx[340] = fabs(xx[64] + xx[173] + xx[7] - (xx[197] + xx[182] + xx[190] - xx
16121 [230]) - xx[201]);
16122 xx[341] = fabs(xx[65] + xx[174] + xx[8] - (xx[198] + xx[183] + xx[191] - xx
16123 [231]) - xx[223]);
16124 xx[342] = fabs(xx[66] + xx[175] + xx[11] - (xx[199] + xx[184] + xx[192] - xx
16125 [232]) + xx[58]);
16126 ii[0] = 328;
16127
16128 {
16129 int ll;
16130 for (ll = 329; ll < 343; ++ll)
16131 if (xx[ll] > xx[ii[0]])
16132 ii[0] = ll;
16133 }
16134
16135 ii[0] -= 328;
16136 xx[6] = xx[328 + (ii[0])];
16137 xx[7] = 0.01;
16138 xx[8] = xx[6] - xx[7];
16139 if (xx[8] < 0.0)
16140 ii[1] = -1;
16141 else if (xx[8] > 0.0)
16142 ii[1] = +1;
16143 else
16144 ii[1] = 0;
16145 ii[2] = ii[1];
16146 if (0 > ii[2])
16147 ii[2] = 0;
16148 if (ii[2] != 0) {
16149 switch (ii[0])
16150 {
16151 case 0:
16152 case 1:
16153 case 2:
16154 {
16155 return sm_ssci_recordRunTimeError(
16156 "sm:compiler:messages:simulationErrors:ConstraintViolation",
16157 "'PlatformAssem/Rod_assem_11/Spherical1' kinematic constraints cannot be maintained. Check solver type and consistency tolerance in the Simscape Solver Configuration block. Check Simulink solver type and tolerances in Model Configuration Parameters. A kinematic singularity might be the source of this problem.",
16158 neDiagMgr);
16159 }
16160
16161 case 3:
16162 case 4:
16163 case 5:
16164 {
16165 return sm_ssci_recordRunTimeError(
16166 "sm:compiler:messages:simulationErrors:ConstraintViolation",
16167 "'PlatformAssem/Rod_assem_12/Spherical1' kinematic constraints cannot be maintained. Check solver type and consistency tolerance in the Simscape Solver Configuration block. Check Simulink solver type and tolerances in Model Configuration Parameters. A kinematic singularity might be the source of this problem.",
16168 neDiagMgr);
16169 }
16170
16171 case 6:
16172 case 7:
16173 case 8:
16174 {
16175 return sm_ssci_recordRunTimeError(
16176 "sm:compiler:messages:simulationErrors:ConstraintViolation",
16177 "'PlatformAssem/Rod_assem_13/Spherical1' kinematic constraints cannot be maintained. Check solver type and consistency tolerance in the Simscape Solver Configuration block. Check Simulink solver type and tolerances in Model Configuration Parameters. A kinematic singularity might be the source of this problem.",
16178 neDiagMgr);
16179 }
16180
16181 case 9:
16182 case 10:
16183 case 11:
16184 {
16185 return sm_ssci_recordRunTimeError(
16186 "sm:compiler:messages:simulationErrors:ConstraintViolation",
16187 "'PlatformAssem/Rod_assem_14/Spherical1' kinematic constraints cannot be maintained. Check solver type and consistency tolerance in the Simscape Solver Configuration block. Check Simulink solver type and tolerances in Model Configuration Parameters. A kinematic singularity might be the source of this problem.",
16188 neDiagMgr);
16189 }
16190
16191 case 12:
16192 case 13:
16193 case 14:
16194 {
16195 return sm_ssci_recordRunTimeError(
16196 "sm:compiler:messages:simulationErrors:ConstraintViolation",
16197 "'PlatformAssem/Rod_assem_1/Spherical1' kinematic constraints cannot be maintained. Check solver type and consistency tolerance in the Simscape Solver Configuration block. Check Simulink solver type and tolerances in Model Configuration Parameters. A kinematic singularity might be the source of this problem.",
16198 neDiagMgr);
16199 }
16200 }
16201 }
16202
16203 xx[6] = xx[2] * xx[815];
16204 xx[8] = sin(xx[6]);
16205 xx[11] = cos(xx[6]);
16206 xx[6] = xx[1] * xx[8] - xx[5] * xx[11];
16207 xx[14] = xx[2] * xx[817];
16208 xx[15] = cos(xx[14]);
16209 xx[17] = xx[6] * xx[15];
16210 xx[19] = sin(xx[14]);
16211 xx[14] = xx[1] * xx[11] + xx[5] * xx[8];
16212 xx[23] = xx[19] * xx[14];
16213 xx[24] = xx[12] * xx[11] + xx[13] * xx[8];
16214 xx[26] = xx[12] * xx[8] - xx[13] * xx[11];
16215 xx[8] = - (xx[15] * xx[24] + xx[26] * xx[19]);
16216 xx[11] = xx[19] * xx[24] - xx[26] * xx[15];
16217 xx[27] = xx[6] * xx[19] + xx[15] * xx[14];
16218 xx[31] = xx[17] - xx[23];
16219 xx[32] = xx[8];
16220 xx[33] = xx[11];
16221 xx[34] = xx[27];
16222 xx[28] = xx[21] * xx[822] - xx[25] * xx[819];
16223 xx[29] = xx[21] * xx[821] + xx[25] * xx[820];
16224 xx[35] = - xx[29];
16225 xx[36] = xx[25] * xx[821] - xx[21] * xx[820];
16226 xx[37] = - xx[36];
16227 xx[38] = xx[21] * xx[819] + xx[25] * xx[822];
16228 xx[40] = - xx[38];
16229 xx[42] = xx[28];
16230 xx[43] = xx[35];
16231 xx[44] = xx[37];
16232 xx[45] = xx[40];
16233 xx[46] = xx[25] * xx[829] - xx[41] * xx[826];
16234 xx[47] = xx[25] * xx[828] - xx[41] * xx[827];
16235 xx[48] = xx[41] * xx[828] + xx[25] * xx[827];
16236 xx[49] = - xx[48];
16237 xx[50] = xx[41] * xx[829] + xx[25] * xx[826];
16238 xx[41] = - xx[50];
16239 xx[68] = xx[46];
16240 xx[69] = xx[47];
16241 xx[70] = xx[49];
16242 xx[71] = xx[41];
16243 xx[51] = xx[2] * xx[835];
16244 xx[52] = cos(xx[51]);
16245 xx[53] = xx[2] * xx[833];
16246 xx[58] = sin(xx[53]);
16247 xx[61] = xx[57] * xx[58];
16248 xx[64] = xx[56] * xx[61];
16249 xx[65] = xx[63] * xx[58];
16250 xx[58] = xx[62] * xx[65];
16251 xx[66] = cos(xx[53]);
16252 xx[53] = xx[62] * xx[66];
16253 xx[75] = xx[64] + xx[58] - xx[53];
16254 xx[76] = sin(xx[51]);
16255 xx[51] = xx[58] + xx[53] + xx[64];
16256 xx[53] = xx[52] * xx[75] + xx[76] * xx[51];
16257 xx[58] = xx[62] * xx[61];
16258 xx[61] = xx[56] * xx[66];
16259 xx[64] = xx[56] * xx[65];
16260 xx[65] = xx[58] + xx[61] - xx[64];
16261 xx[66] = xx[61] - xx[58] + xx[64];
16262 xx[58] = xx[65] * xx[52] - xx[76] * xx[66];
16263 xx[61] = xx[52] * xx[66] + xx[65] * xx[76];
16264 xx[64] = xx[52] * xx[51] - xx[76] * xx[75];
16265 xx[91] = xx[53];
16266 xx[92] = xx[58];
16267 xx[93] = xx[61];
16268 xx[94] = xx[64];
16269 pm_math_quatCompose(xx + 68, xx + 91, xx + 97);
16270 pm_math_quatCompose(xx + 42, xx + 97, xx + 136);
16271 pm_math_quatCompose(xx + 31, xx + 136, xx + 140);
16272 xx[81] = xx[80] * (xx[137] * xx[139] - xx[136] * xx[138]);
16273 xx[82] = (xx[136] * xx[137] + xx[138] * xx[139]) * xx[80];
16274 xx[83] = xx[22] - (xx[137] * xx[137] + xx[138] * xx[138]) * xx[80];
16275 pm_math_cross3(xx + 81, xx + 84, xx + 109);
16276 pm_math_quatXform(xx + 140, xx + 109, xx + 81);
16277 xx[140] = xx[75];
16278 xx[141] = xx[65];
16279 xx[142] = xx[66];
16280 xx[143] = xx[51];
16281 xx[77] = xx[87] * xx[76];
16282 xx[78] = xx[52] * xx[77];
16283 xx[88] = xx[90] * xx[76];
16284 xx[89] = xx[88] * xx[76];
16285 xx[101] = xx[79] + xx[80] * (xx[78] + xx[89]) - xx[90];
16286 xx[79] = xx[77] * xx[76];
16287 xx[77] = xx[52] * xx[88];
16288 xx[88] = xx[87] - (xx[79] - xx[77]) * xx[80];
16289 xx[109] = - xx[101];
16290 xx[110] = - xx[88];
16291 xx[111] = xx[96];
16292 pm_math_quatXform(xx + 140, xx + 109, xx + 132);
16293 xx[96] = xx[105] * xx[66];
16294 xx[109] = xx[65];
16295 xx[110] = xx[66];
16296 xx[111] = xx[51];
16297 xx[103] = xx[104] * xx[51] - xx[65] * xx[105];
16298 xx[105] = xx[104] * xx[66];
16299 xx[144] = xx[96];
16300 xx[145] = xx[103];
16301 xx[146] = - xx[105];
16302 pm_math_cross3(xx + 109, xx + 144, xx + 147);
16303 xx[104] = xx[3] + (xx[96] * xx[75] + xx[147]) * xx[80];
16304 xx[3] = xx[132] - xx[104];
16305 xx[96] = xx[108] - (xx[75] * xx[103] + xx[148]) * xx[80];
16306 xx[103] = xx[133] + xx[96];
16307 xx[107] = xx[18] + xx[80] * (xx[149] - xx[105] * xx[75]);
16308 xx[18] = xx[134] - xx[107];
16309 xx[108] = xx[3];
16310 xx[109] = xx[103];
16311 xx[110] = xx[18];
16312 pm_math_quatXform(xx + 68, xx + 108, xx + 132);
16313 pm_math_quatXform(xx + 68, xx + 112, xx + 144);
16314 xx[105] = xx[102] + xx[144];
16315 xx[111] = xx[132] + xx[105];
16316 xx[118] = xx[123] + xx[145];
16317 xx[120] = xx[133] + xx[118];
16318 xx[121] = xx[115] + xx[146];
16319 xx[115] = xx[134] + xx[121];
16320 xx[132] = xx[111];
16321 xx[133] = xx[120];
16322 xx[134] = xx[115];
16323 pm_math_quatXform(xx + 42, xx + 132, xx + 144);
16324 pm_math_quatXform(xx + 42, xx + 126, xx + 147);
16325 xx[124] = xx[145] + xx[148];
16326 xx[125] = xx[144] + xx[147];
16327 xx[129] = xx[124] * xx[19] - xx[125] * xx[15];
16328 xx[144] = xx[131] * xx[15] + xx[135] * xx[19];
16329 xx[145] = xx[80] * xx[144] * xx[19];
16330 xx[146] = xx[80] * xx[19] * xx[129] - (xx[124] - xx[145]) - xx[135];
16331 xx[149] = xx[6];
16332 xx[150] = xx[14];
16333 xx[151] = xx[26];
16334 xx[152] = xx[80] * xx[144] * xx[15];
16335 xx[144] = xx[125] + xx[80] * xx[15] * xx[129] + xx[152] - xx[131];
16336 xx[129] = xx[26] * xx[144];
16337 xx[153] = xx[26] * xx[146];
16338 xx[154] = xx[6] * xx[144] - xx[146] * xx[14];
16339 xx[155] = - xx[129];
16340 xx[156] = xx[153];
16341 xx[157] = xx[154];
16342 pm_math_cross3(xx + 149, xx + 155, xx + 158);
16343 xx[161] = - (xx[23] - xx[17]);
16344 xx[162] = xx[8];
16345 xx[163] = xx[11];
16346 xx[164] = xx[27];
16347 pm_math_quatCompose(xx + 161, xx + 42, xx + 170);
16348 pm_math_quatCompose(xx + 170, xx + 97, xx + 179);
16349 xx[8] = xx[4] * xx[100];
16350 xx[11] = xx[4] * xx[98] + xx[99];
16351 xx[155] = xx[8];
16352 xx[156] = xx[100];
16353 xx[157] = - xx[11];
16354 pm_math_cross3(xx + 98, xx + 155, xx + 183);
16355 xx[17] = xx[97] * xx[100];
16356 xx[155] = xx[22] + (xx[183] - xx[97] * xx[8]) * xx[80];
16357 xx[156] = xx[80] * (xx[184] - xx[17]) - xx[4];
16358 xx[157] = xx[80] * (xx[185] + xx[97] * xx[11]);
16359 pm_math_cross3(xx + 155, xx + 84, xx + 183);
16360 pm_math_quatXform(xx + 179, xx + 183, xx + 155);
16361 xx[11] = - (xx[115] * xx[4]);
16362 xx[183] = xx[11];
16363 xx[184] = - xx[115];
16364 xx[185] = xx[120] + xx[111] * xx[4];
16365 pm_math_quatXform(xx + 42, xx + 183, xx + 186);
16366 pm_math_quatXform(xx + 42, xx + 167, xx + 183);
16367 xx[189] = xx[186] + xx[183];
16368 xx[190] = xx[187] + xx[184];
16369 xx[191] = xx[188] + xx[185];
16370 pm_math_quatXform(xx + 161, xx + 189, xx + 186);
16371 xx[23] = xx[98] - xx[4] * xx[99];
16372 xx[189] = - xx[100];
16373 xx[190] = xx[8];
16374 xx[191] = xx[23];
16375 pm_math_cross3(xx + 98, xx + 189, xx + 197);
16376 xx[189] = xx[4] + (xx[17] + xx[197]) * xx[80];
16377 xx[190] = xx[22] + xx[80] * (xx[198] - xx[4] * xx[17]);
16378 xx[191] = xx[80] * (xx[199] - xx[97] * xx[23]);
16379 pm_math_cross3(xx + 189, xx + 84, xx + 197);
16380 pm_math_quatXform(xx + 179, xx + 197, xx + 189);
16381 xx[197] = xx[115];
16382 xx[198] = xx[11];
16383 xx[199] = xx[120] * xx[4] - xx[111];
16384 pm_math_quatXform(xx + 42, xx + 197, xx + 200);
16385 pm_math_quatXform(xx + 42, xx + 176, xx + 197);
16386 xx[203] = xx[200] + xx[197];
16387 xx[204] = xx[201] + xx[198];
16388 xx[205] = xx[202] + xx[199];
16389 pm_math_quatXform(xx + 161, xx + 203, xx + 200);
16390 xx[203] = xx[80] * (xx[98] * xx[100] - xx[97] * xx[99]);
16391 xx[204] = (xx[97] * xx[98] + xx[99] * xx[100]) * xx[80];
16392 xx[205] = xx[22] - (xx[98] * xx[98] + xx[99] * xx[99]) * xx[80];
16393 pm_math_cross3(xx + 203, xx + 84, xx + 206);
16394 pm_math_quatXform(xx + 179, xx + 206, xx + 203);
16395 xx[179] = xx[35];
16396 xx[180] = xx[37];
16397 xx[181] = xx[40];
16398 xx[8] = xx[111] * xx[38];
16399 xx[11] = xx[120] * xx[38];
16400 xx[17] = xx[111] * xx[29] + xx[36] * xx[120];
16401 xx[206] = xx[8];
16402 xx[207] = xx[11];
16403 xx[208] = - xx[17];
16404 pm_math_cross3(xx + 179, xx + 206, xx + 209);
16405 xx[23] = xx[117] * xx[38];
16406 xx[27] = xx[119] * xx[38];
16407 xx[35] = xx[117] * xx[29] + xx[36] * xx[119];
16408 xx[206] = xx[23];
16409 xx[207] = xx[27];
16410 xx[208] = - xx[35];
16411 pm_math_cross3(xx + 179, xx + 206, xx + 212);
16412 xx[37] = xx[80] * (xx[212] + xx[23] * xx[28]);
16413 xx[23] = (xx[27] * xx[28] + xx[213]) * xx[80];
16414 xx[27] = (xx[214] - xx[35] * xx[28]) * xx[80];
16415 xx[206] = xx[80] * (xx[209] + xx[8] * xx[28]) + xx[37] - xx[120] - xx[119];
16416 xx[207] = xx[111] + xx[80] * (xx[210] + xx[11] * xx[28]) + xx[23] + xx[117];
16417 xx[208] = (xx[211] - xx[28] * xx[17]) * xx[80] + xx[27];
16418 pm_math_quatXform(xx + 161, xx + 206, xx + 209);
16419 pm_math_quatCompose(xx + 170, xx + 68, xx + 212);
16420 pm_math_quatCompose(xx + 212, xx + 91, xx + 216);
16421 xx[8] = xx[61] * xx[61];
16422 xx[11] = xx[64] * xx[64];
16423 xx[17] = xx[61] * xx[58];
16424 xx[35] = xx[53] * xx[64];
16425 xx[40] = xx[53] * xx[61];
16426 xx[111] = xx[64] * xx[58];
16427 xx[206] = xx[22] - (xx[8] + xx[11]) * xx[80];
16428 xx[207] = xx[80] * (xx[17] - xx[35]);
16429 xx[208] = (xx[40] + xx[111]) * xx[80];
16430 pm_math_cross3(xx + 206, xx + 84, xx + 220);
16431 pm_math_quatXform(xx + 216, xx + 220, xx + 206);
16432 xx[220] = xx[47];
16433 xx[221] = xx[49];
16434 xx[222] = xx[41];
16435 xx[41] = xx[48] * xx[103];
16436 xx[49] = xx[50] * xx[18];
16437 xx[115] = xx[41] + xx[49];
16438 xx[120] = xx[103] * xx[47];
16439 xx[166] = xx[18] * xx[47];
16440 xx[223] = - xx[115];
16441 xx[224] = - xx[120];
16442 xx[225] = - xx[166];
16443 pm_math_cross3(xx + 220, xx + 223, xx + 226);
16444 xx[174] = xx[48] * xx[73];
16445 xx[175] = xx[50] * xx[74];
16446 xx[182] = xx[174] - xx[175];
16447 xx[192] = xx[73] * xx[47];
16448 xx[193] = xx[74] * xx[47];
16449 xx[223] = xx[182];
16450 xx[224] = xx[192];
16451 xx[225] = - xx[193];
16452 pm_math_cross3(xx + 220, xx + 223, xx + 229);
16453 xx[195] = (xx[46] * xx[182] + xx[229]) * xx[80];
16454 xx[182] = xx[80] * (xx[230] + xx[192] * xx[46]);
16455 xx[192] = (xx[231] - xx[193] * xx[46]) * xx[80];
16456 xx[223] = xx[80] * (xx[226] - xx[115] * xx[46]) + xx[195];
16457 xx[224] = xx[80] * (xx[227] - xx[120] * xx[46]) + xx[182] - xx[18] - xx[74];
16458 xx[225] = xx[103] + xx[80] * (xx[228] - xx[166] * xx[46]) + xx[192] - xx[73];
16459 pm_math_quatXform(xx + 170, xx + 223, xx + 226);
16460 xx[115] = xx[58] * xx[58];
16461 xx[120] = xx[61] * xx[64];
16462 xx[61] = xx[53] * xx[58];
16463 xx[223] = (xx[35] + xx[17]) * xx[80];
16464 xx[224] = xx[22] - (xx[11] + xx[115]) * xx[80];
16465 xx[225] = xx[80] * (xx[120] - xx[61]);
16466 pm_math_cross3(xx + 223, xx + 84, xx + 229);
16467 pm_math_quatXform(xx + 216, xx + 229, xx + 223);
16468 xx[11] = xx[48] * xx[3];
16469 xx[17] = xx[3] * xx[47];
16470 xx[35] = xx[17] - xx[49];
16471 xx[49] = xx[48] * xx[18];
16472 xx[229] = xx[11];
16473 xx[230] = xx[35];
16474 xx[231] = xx[49];
16475 pm_math_cross3(xx + 220, xx + 229, xx + 232);
16476 xx[53] = xx[48] * xx[72];
16477 xx[58] = xx[72] * xx[47];
16478 xx[64] = xx[175] - xx[58];
16479 xx[166] = xx[48] * xx[74];
16480 xx[229] = xx[53];
16481 xx[230] = - xx[64];
16482 xx[231] = xx[166];
16483 pm_math_cross3(xx + 220, xx + 229, xx + 235);
16484 xx[175] = xx[80] * (xx[235] + xx[53] * xx[46]);
16485 xx[53] = xx[80] * (xx[236] - xx[64] * xx[46]);
16486 xx[64] = (xx[166] * xx[46] + xx[237]) * xx[80];
16487 xx[229] = xx[18] + (xx[11] * xx[46] + xx[232]) * xx[80] + xx[175] + xx[74];
16488 xx[230] = (xx[46] * xx[35] + xx[233]) * xx[80] + xx[53];
16489 xx[231] = (xx[49] * xx[46] + xx[234]) * xx[80] + xx[64] - xx[3] - xx[72];
16490 pm_math_quatXform(xx + 170, xx + 229, xx + 232);
16491 xx[229] = xx[80] * (xx[111] - xx[40]);
16492 xx[230] = (xx[61] + xx[120]) * xx[80];
16493 xx[231] = xx[22] - (xx[115] + xx[8]) * xx[80];
16494 pm_math_cross3(xx + 229, xx + 84, xx + 235);
16495 pm_math_quatXform(xx + 216, xx + 235, xx + 229);
16496 xx[8] = xx[50] * xx[3];
16497 xx[11] = xx[50] * xx[103];
16498 xx[18] = xx[17] - xx[41];
16499 xx[216] = xx[8];
16500 xx[217] = xx[11];
16501 xx[218] = xx[18];
16502 pm_math_cross3(xx + 220, xx + 216, xx + 235);
16503 xx[17] = xx[50] * xx[72];
16504 xx[35] = xx[50] * xx[73];
16505 xx[40] = xx[58] + xx[174];
16506 xx[216] = xx[17];
16507 xx[217] = - xx[35];
16508 xx[218] = xx[40];
16509 pm_math_cross3(xx + 220, xx + 216, xx + 244);
16510 xx[41] = (xx[17] * xx[46] + xx[244]) * xx[80];
16511 xx[17] = xx[80] * (xx[245] - xx[35] * xx[46]);
16512 xx[35] = (xx[40] * xx[46] + xx[246]) * xx[80];
16513 xx[216] = (xx[8] * xx[46] + xx[235]) * xx[80] + xx[41] - xx[103] + xx[73];
16514 xx[217] = xx[3] + (xx[11] * xx[46] + xx[236]) * xx[80] + xx[17] + xx[72];
16515 xx[218] = (xx[46] * xx[18] + xx[237]) * xx[80] + xx[35];
16516 pm_math_quatXform(xx + 170, xx + 216, xx + 235);
16517 pm_math_quatCompose(xx + 212, xx + 140, xx + 216);
16518 xx[3] = xx[52] * xx[216] + xx[219] * xx[76];
16519 xx[8] = xx[52] * xx[217] - xx[218] * xx[76];
16520 xx[11] = xx[52] * xx[218] + xx[217] * xx[76];
16521 xx[18] = xx[52] * xx[219] - xx[216] * xx[76];
16522 xx[244] = xx[3];
16523 xx[245] = xx[8];
16524 xx[246] = xx[11];
16525 xx[247] = xx[18];
16526 xx[40] = xx[57] * xx[76];
16527 xx[49] = xx[80] * xx[52] * xx[40];
16528 xx[58] = xx[80] * xx[40] * xx[76] - xx[57];
16529 xx[248] = xx[74] * xx[49] + xx[55];
16530 xx[249] = xx[106] + xx[74] * xx[58];
16531 xx[250] = xx[73] * xx[58] - xx[72] * xx[49];
16532 pm_math_quatXform(xx + 244, xx + 248, xx + 251);
16533 xx[244] = - (xx[63] * xx[88]);
16534 xx[245] = xx[63] * xx[101] - xx[60];
16535 xx[246] = xx[57] * xx[88];
16536 pm_math_quatXform(xx + 140, xx + 244, xx + 247);
16537 xx[40] = xx[67] * xx[51];
16538 xx[49] = xx[65] * xx[67];
16539 xx[58] = xx[40] * xx[75] - xx[49] * xx[66];
16540 xx[60] = xx[80] * xx[58];
16541 xx[61] = (xx[40] * xx[51] + xx[65] * xx[49]) * xx[80];
16542 xx[103] = xx[49] * xx[75] + xx[40] * xx[66];
16543 xx[40] = xx[103] * xx[80];
16544 xx[244] = xx[247] + xx[60];
16545 xx[245] = xx[248] + xx[61] - xx[67];
16546 xx[246] = xx[249] - xx[40];
16547 pm_math_quatXform(xx + 212, xx + 244, xx + 247);
16548 xx[244] = xx[8];
16549 xx[245] = xx[11];
16550 xx[246] = xx[18];
16551 xx[49] = xx[72] * xx[18];
16552 xx[111] = xx[73] * xx[18];
16553 xx[18] = xx[72] * xx[8] - xx[11] * xx[73];
16554 xx[258] = - xx[49];
16555 xx[259] = xx[111];
16556 xx[260] = xx[18];
16557 pm_math_cross3(xx + 244, xx + 258, xx + 263);
16558 xx[8] = xx[80] * (xx[79] - xx[77]) - xx[87];
16559 xx[11] = (xx[78] + xx[89]) * xx[80] - xx[90];
16560 xx[77] = xx[219] * xx[11];
16561 xx[78] = xx[8] * xx[219];
16562 xx[79] = xx[217] * xx[11] - xx[8] * xx[218];
16563 xx[244] = - xx[77];
16564 xx[245] = xx[78];
16565 xx[246] = xx[79];
16566 pm_math_cross3(xx + 217, xx + 244, xx + 258);
16567 xx[87] = xx[2] * xx[858];
16568 xx[89] = cos(xx[87]);
16569 xx[90] = xx[2] * xx[856];
16570 xx[115] = cos(xx[90]);
16571 xx[120] = sin(xx[90]);
16572 xx[90] = xx[122] * xx[115] + xx[165] * xx[120];
16573 xx[166] = xx[89] * xx[90];
16574 xx[174] = xx[165] * xx[115] - xx[122] * xx[120];
16575 xx[122] = sin(xx[87]);
16576 xx[87] = xx[174] * xx[122];
16577 xx[165] = xx[239] * xx[115] - xx[240] * xx[120];
16578 xx[193] = xx[240] * xx[115] + xx[239] * xx[120];
16579 xx[115] = - (xx[165] * xx[89] - xx[122] * xx[193]);
16580 xx[120] = xx[165] * xx[122] + xx[89] * xx[193];
16581 xx[238] = xx[174] * xx[89] - xx[122] * xx[90];
16582 xx[239] = - (xx[166] + xx[87]);
16583 xx[240] = xx[115];
16584 xx[241] = xx[120];
16585 xx[242] = xx[238];
16586 xx[244] = xx[21] * xx[863] - xx[25] * xx[860];
16587 xx[245] = xx[21] * xx[862] + xx[25] * xx[861];
16588 xx[246] = - xx[245];
16589 xx[250] = xx[25] * xx[862] - xx[21] * xx[861];
16590 xx[255] = - xx[250];
16591 xx[256] = xx[21] * xx[860] + xx[25] * xx[863];
16592 xx[261] = - xx[256];
16593 xx[271] = xx[244];
16594 xx[272] = xx[246];
16595 xx[273] = xx[255];
16596 xx[274] = xx[261];
16597 pm_math_quatCompose(xx + 239, xx + 271, xx + 275);
16598 xx[239] = (xx[250] * xx[244] + xx[245] * xx[256]) * xx[80];
16599 xx[240] = xx[80] * (xx[250] * xx[256] - xx[244] * xx[245]);
16600 xx[241] = xx[22] - (xx[245] * xx[245] + xx[250] * xx[250]) * xx[80];
16601 pm_math_cross3(xx + 239, xx + 267, xx + 283);
16602 pm_math_quatXform(xx + 275, xx + 283, xx + 239);
16603 pm_math_quatXform(xx + 271, xx + 126, xx + 275);
16604 xx[242] = xx[276] * xx[122] - xx[89] * xx[275];
16605 xx[277] = xx[266] * xx[122] - xx[270] * xx[89];
16606 xx[278] = xx[80] * xx[277] * xx[122];
16607 xx[279] = xx[80] * xx[122] * xx[242] - (xx[276] + xx[278]) + xx[266];
16608 xx[283] = - xx[90];
16609 xx[284] = - xx[193];
16610 xx[285] = xx[283];
16611 xx[286] = xx[174];
16612 xx[287] = xx[284];
16613 xx[288] = xx[80] * xx[277] * xx[89];
16614 xx[277] = xx[275] + xx[80] * xx[89] * xx[242] - xx[288] - xx[270];
16615 xx[242] = xx[277] * xx[193];
16616 xx[289] = xx[279] * xx[193];
16617 xx[290] = xx[277] * xx[90] + xx[279] * xx[174];
16618 xx[291] = xx[242];
16619 xx[292] = - xx[289];
16620 xx[293] = - xx[290];
16621 pm_math_cross3(xx + 285, xx + 291, xx + 294);
16622 xx[300] = - (xx[87] + xx[166]);
16623 xx[301] = xx[115];
16624 xx[302] = xx[120];
16625 xx[303] = xx[238];
16626 pm_math_quatCompose(xx + 300, xx + 271, xx + 304);
16627 pm_math_quatXform(xx + 304, xx + 280, xx + 285);
16628 pm_math_quatXform(xx + 271, xx + 167, xx + 291);
16629 pm_math_quatXform(xx + 300, xx + 291, xx + 308);
16630 pm_math_quatXform(xx + 304, xx + 297, xx + 291);
16631 pm_math_quatXform(xx + 271, xx + 176, xx + 315);
16632 pm_math_quatXform(xx + 300, xx + 315, xx + 318);
16633 xx[87] = xx[102] * xx[307];
16634 xx[115] = xx[102] * xx[305] + xx[123] * xx[306];
16635 xx[315] = - xx[87];
16636 xx[316] = - (xx[123] * xx[307]);
16637 xx[317] = xx[115];
16638 pm_math_cross3(xx + 305, xx + 315, xx + 321);
16639 xx[315] = xx[246];
16640 xx[316] = xx[255];
16641 xx[317] = xx[261];
16642 xx[120] = xx[117] * xx[256];
16643 xx[166] = xx[119] * xx[256];
16644 xx[238] = xx[117] * xx[245] + xx[250] * xx[119];
16645 xx[328] = xx[120];
16646 xx[329] = xx[166];
16647 xx[330] = - xx[238];
16648 pm_math_cross3(xx + 315, xx + 328, xx + 331);
16649 xx[315] = xx[80] * (xx[331] + xx[120] * xx[244]) - xx[119];
16650 xx[316] = xx[117] + (xx[166] * xx[244] + xx[332]) * xx[80];
16651 xx[317] = (xx[333] - xx[238] * xx[244]) * xx[80];
16652 pm_math_quatXform(xx + 300, xx + 315, xx + 328);
16653 xx[120] = xx[2] * xx[837];
16654 xx[166] = sin(xx[120]);
16655 xx[238] = xx[62] * xx[166];
16656 xx[246] = cos(xx[120]);
16657 xx[120] = xx[62] * xx[246];
16658 xx[62] = xx[238] - xx[120];
16659 xx[255] = xx[56] * xx[246];
16660 xx[246] = xx[56] * xx[166];
16661 xx[56] = xx[255] + xx[246];
16662 xx[166] = - xx[56];
16663 xx[261] = xx[246] - xx[255];
16664 xx[246] = xx[238] + xx[120];
16665 xx[120] = - xx[246];
16666 xx[300] = xx[62];
16667 xx[301] = xx[166];
16668 xx[302] = xx[261];
16669 xx[303] = xx[120];
16670 pm_math_quatCompose(xx + 140, xx + 300, xx + 331);
16671 pm_math_quatCompose(xx + 68, xx + 331, xx + 335);
16672 pm_math_quatCompose(xx + 42, xx + 335, xx + 339);
16673 pm_math_quatCompose(xx + 31, xx + 339, xx + 343);
16674 xx[315] = xx[80] * (xx[340] * xx[342] - xx[339] * xx[341]);
16675 xx[316] = (xx[339] * xx[340] + xx[341] * xx[342]) * xx[80];
16676 xx[317] = xx[22] - (xx[340] * xx[340] + xx[341] * xx[341]) * xx[80];
16677 pm_math_cross3(xx + 315, xx + 84, xx + 347);
16678 pm_math_quatXform(xx + 343, xx + 347, xx + 315);
16679 pm_math_quatXform(xx + 300, xx + 324, xx + 343);
16680 xx[238] = xx[243] - xx[343];
16681 xx[243] = xx[262] - xx[345];
16682 xx[324] = xx[238];
16683 xx[325] = - xx[344];
16684 xx[326] = xx[243];
16685 pm_math_quatXform(xx + 140, xx + 324, xx + 345);
16686 xx[255] = xx[345] - xx[104];
16687 xx[262] = xx[346] + xx[96];
16688 xx[305] = xx[347] - xx[107];
16689 xx[324] = xx[255];
16690 xx[325] = xx[262];
16691 xx[326] = xx[305];
16692 pm_math_quatXform(xx + 68, xx + 324, xx + 345);
16693 xx[306] = xx[345] + xx[105];
16694 xx[311] = xx[346] + xx[118];
16695 xx[313] = xx[347] + xx[121];
16696 xx[345] = xx[306];
16697 xx[346] = xx[311];
16698 xx[347] = xx[313];
16699 pm_math_quatXform(xx + 42, xx + 345, xx + 348);
16700 xx[343] = xx[349] + xx[148];
16701 xx[349] = xx[348] + xx[147];
16702 xx[348] = xx[343] * xx[19] - xx[349] * xx[15];
16703 xx[350] = xx[80] * xx[19] * xx[348] - (xx[343] - xx[145]) - xx[135];
16704 xx[351] = xx[349] + xx[80] * xx[15] * xx[348] + xx[152] - xx[131];
16705 xx[348] = xx[26] * xx[351];
16706 xx[352] = xx[26] * xx[350];
16707 xx[353] = xx[6] * xx[351] - xx[350] * xx[14];
16708 xx[354] = - xx[348];
16709 xx[355] = xx[352];
16710 xx[356] = xx[353];
16711 pm_math_cross3(xx + 149, xx + 354, xx + 357);
16712 pm_math_quatCompose(xx + 170, xx + 335, xx + 360);
16713 xx[354] = xx[4] * xx[338];
16714 xx[355] = xx[4] * xx[336] + xx[337];
16715 xx[364] = xx[354];
16716 xx[365] = xx[338];
16717 xx[366] = - xx[355];
16718 pm_math_cross3(xx + 336, xx + 364, xx + 367);
16719 xx[356] = xx[335] * xx[338];
16720 xx[364] = xx[22] + (xx[367] - xx[335] * xx[354]) * xx[80];
16721 xx[365] = xx[80] * (xx[368] - xx[356]) - xx[4];
16722 xx[366] = xx[80] * (xx[369] + xx[335] * xx[355]);
16723 pm_math_cross3(xx + 364, xx + 84, xx + 367);
16724 pm_math_quatXform(xx + 360, xx + 367, xx + 364);
16725 xx[355] = - (xx[313] * xx[4]);
16726 xx[367] = xx[355];
16727 xx[368] = - xx[313];
16728 xx[369] = xx[311] + xx[306] * xx[4];
16729 pm_math_quatXform(xx + 42, xx + 367, xx + 370);
16730 xx[367] = xx[370] + xx[183];
16731 xx[368] = xx[371] + xx[184];
16732 xx[369] = xx[372] + xx[185];
16733 pm_math_quatXform(xx + 161, xx + 367, xx + 370);
16734 xx[367] = xx[336] - xx[4] * xx[337];
16735 xx[373] = - xx[338];
16736 xx[374] = xx[354];
16737 xx[375] = xx[367];
16738 pm_math_cross3(xx + 336, xx + 373, xx + 376);
16739 xx[373] = xx[4] + (xx[356] + xx[376]) * xx[80];
16740 xx[374] = xx[22] + xx[80] * (xx[377] - xx[4] * xx[356]);
16741 xx[375] = xx[80] * (xx[378] - xx[335] * xx[367]);
16742 pm_math_cross3(xx + 373, xx + 84, xx + 367);
16743 pm_math_quatXform(xx + 360, xx + 367, xx + 373);
16744 xx[367] = xx[313];
16745 xx[368] = xx[355];
16746 xx[369] = xx[311] * xx[4] - xx[306];
16747 pm_math_quatXform(xx + 42, xx + 367, xx + 354);
16748 xx[367] = xx[354] + xx[197];
16749 xx[368] = xx[355] + xx[198];
16750 xx[369] = xx[356] + xx[199];
16751 pm_math_quatXform(xx + 161, xx + 367, xx + 354);
16752 xx[367] = xx[80] * (xx[336] * xx[338] - xx[335] * xx[337]);
16753 xx[368] = (xx[335] * xx[336] + xx[337] * xx[338]) * xx[80];
16754 xx[369] = xx[22] - (xx[336] * xx[336] + xx[337] * xx[337]) * xx[80];
16755 pm_math_cross3(xx + 367, xx + 84, xx + 376);
16756 pm_math_quatXform(xx + 360, xx + 376, xx + 367);
16757 xx[313] = xx[306] * xx[38];
16758 xx[360] = xx[311] * xx[38];
16759 xx[361] = xx[306] * xx[29] + xx[311] * xx[36];
16760 xx[376] = xx[313];
16761 xx[377] = xx[360];
16762 xx[378] = - xx[361];
16763 pm_math_cross3(xx + 179, xx + 376, xx + 380);
16764 xx[376] = xx[80] * (xx[380] + xx[313] * xx[28]) + xx[37] - xx[311] - xx[119];
16765 xx[377] = xx[306] + xx[80] * (xx[381] + xx[360] * xx[28]) + xx[23] + xx[117];
16766 xx[378] = (xx[382] - xx[28] * xx[361]) * xx[80] + xx[27];
16767 pm_math_quatXform(xx + 161, xx + 376, xx + 360);
16768 pm_math_quatCompose(xx + 212, xx + 331, xx + 380);
16769 xx[306] = xx[333] * xx[333];
16770 xx[311] = xx[334] * xx[334];
16771 xx[313] = xx[332] * xx[333];
16772 xx[363] = xx[331] * xx[334];
16773 xx[376] = xx[331] * xx[333];
16774 xx[377] = xx[332] * xx[334];
16775 xx[384] = xx[22] - (xx[306] + xx[311]) * xx[80];
16776 xx[385] = xx[80] * (xx[313] - xx[363]);
16777 xx[386] = (xx[376] + xx[377]) * xx[80];
16778 pm_math_cross3(xx + 384, xx + 84, xx + 387);
16779 pm_math_quatXform(xx + 380, xx + 387, xx + 384);
16780 xx[378] = xx[262] * xx[48];
16781 xx[387] = xx[305] * xx[50];
16782 xx[388] = xx[378] + xx[387];
16783 xx[389] = xx[262] * xx[47];
16784 xx[390] = xx[305] * xx[47];
16785 xx[391] = - xx[388];
16786 xx[392] = - xx[389];
16787 xx[393] = - xx[390];
16788 pm_math_cross3(xx + 220, xx + 391, xx + 394);
16789 xx[391] = xx[80] * (xx[394] - xx[388] * xx[46]) + xx[195];
16790 xx[392] = xx[80] * (xx[395] - xx[389] * xx[46]) + xx[182] - xx[305] - xx[74];
16791 xx[393] = xx[262] + xx[80] * (xx[396] - xx[390] * xx[46]) + xx[192] - xx[73];
16792 pm_math_quatXform(xx + 170, xx + 391, xx + 388);
16793 xx[391] = xx[332] * xx[332];
16794 xx[392] = xx[333] * xx[334];
16795 xx[393] = xx[331] * xx[332];
16796 xx[394] = (xx[363] + xx[313]) * xx[80];
16797 xx[395] = xx[22] - (xx[311] + xx[391]) * xx[80];
16798 xx[396] = xx[80] * (xx[392] - xx[393]);
16799 pm_math_cross3(xx + 394, xx + 84, xx + 402);
16800 pm_math_quatXform(xx + 380, xx + 402, xx + 394);
16801 xx[311] = xx[255] * xx[48];
16802 xx[313] = xx[255] * xx[47];
16803 xx[363] = xx[313] - xx[387];
16804 xx[387] = xx[305] * xx[48];
16805 xx[402] = xx[311];
16806 xx[403] = xx[363];
16807 xx[404] = xx[387];
16808 pm_math_cross3(xx + 220, xx + 402, xx + 405);
16809 xx[402] = xx[305] + (xx[311] * xx[46] + xx[405]) * xx[80] + xx[175] + xx[74];
16810 xx[403] = (xx[46] * xx[363] + xx[406]) * xx[80] + xx[53];
16811 xx[404] = (xx[387] * xx[46] + xx[407]) * xx[80] + xx[64] - xx[255] - xx[72];
16812 pm_math_quatXform(xx + 170, xx + 402, xx + 405);
16813 xx[402] = xx[80] * (xx[377] - xx[376]);
16814 xx[403] = (xx[393] + xx[392]) * xx[80];
16815 xx[404] = xx[22] - (xx[391] + xx[306]) * xx[80];
16816 pm_math_cross3(xx + 402, xx + 84, xx + 391);
16817 pm_math_quatXform(xx + 380, xx + 391, xx + 402);
16818 xx[305] = xx[255] * xx[50];
16819 xx[306] = xx[262] * xx[50];
16820 xx[311] = xx[313] - xx[378];
16821 xx[376] = xx[305];
16822 xx[377] = xx[306];
16823 xx[378] = xx[311];
16824 pm_math_cross3(xx + 220, xx + 376, xx + 380);
16825 xx[376] = (xx[305] * xx[46] + xx[380]) * xx[80] + xx[41] - xx[262] + xx[73];
16826 xx[377] = xx[255] + (xx[306] * xx[46] + xx[381]) * xx[80] + xx[17] + xx[72];
16827 xx[378] = (xx[46] * xx[311] + xx[382]) * xx[80] + xx[35];
16828 pm_math_quatXform(xx + 170, xx + 376, xx + 380);
16829 pm_math_quatCompose(xx + 216, xx + 300, xx + 411);
16830 xx[300] = xx[166];
16831 xx[301] = xx[261];
16832 xx[302] = xx[120];
16833 xx[120] = xx[63] * xx[261];
16834 xx[166] = xx[246] * xx[57] - xx[56] * xx[63];
16835 xx[255] = xx[57] * xx[261];
16836 xx[376] = - xx[120];
16837 xx[377] = xx[166];
16838 xx[378] = xx[255];
16839 pm_math_cross3(xx + 300, xx + 376, xx + 391);
16840 xx[376] = xx[80] * (xx[391] + xx[120] * xx[62]) - xx[57];
16841 xx[377] = xx[80] * (xx[392] - xx[62] * xx[166]);
16842 xx[378] = (xx[393] - xx[255] * xx[62]) * xx[80] - xx[63];
16843 pm_math_cross3(xx + 376, xx + 84, xx + 391);
16844 pm_math_quatXform(xx + 411, xx + 391, xx + 376);
16845 xx[391] = - (xx[63] * xx[344]);
16846 xx[392] = xx[57] * xx[243] - xx[63] * xx[238];
16847 xx[393] = xx[57] * xx[344];
16848 pm_math_quatXform(xx + 140, xx + 391, xx + 415);
16849 xx[391] = xx[415] + xx[60];
16850 xx[392] = xx[416] + xx[61] - xx[67];
16851 xx[393] = xx[417] - xx[40];
16852 pm_math_quatXform(xx + 212, xx + 391, xx + 415);
16853 xx[120] = xx[72] * xx[414];
16854 xx[166] = xx[73] * xx[413] - xx[72] * xx[412];
16855 xx[391] = xx[120];
16856 xx[392] = - (xx[73] * xx[414]);
16857 xx[393] = xx[166];
16858 pm_math_cross3(xx + 412, xx + 391, xx + 418);
16859 xx[255] = xx[246] * xx[254];
16860 xx[262] = xx[246] * xx[257];
16861 xx[303] = xx[257] * xx[261] - xx[56] * xx[254];
16862 xx[391] = xx[255];
16863 xx[392] = xx[262];
16864 xx[393] = xx[303];
16865 pm_math_cross3(xx + 300, xx + 391, xx + 421);
16866 xx[305] = xx[80] * (xx[421] + xx[255] * xx[62]) - xx[257];
16867 xx[255] = xx[254] + (xx[262] * xx[62] + xx[422]) * xx[80];
16868 xx[254] = xx[62] * xx[303] + xx[423];
16869 xx[257] = xx[254] * xx[80];
16870 xx[391] = xx[305];
16871 xx[392] = xx[255];
16872 xx[393] = xx[257];
16873 pm_math_quatXform(xx + 216, xx + 391, xx + 421);
16874 xx[262] = xx[2] * xx[845];
16875 xx[303] = sin(xx[262]);
16876 xx[306] = cos(xx[262]);
16877 xx[262] = xx[1] * xx[303] - xx[5] * xx[306];
16878 xx[311] = xx[2] * xx[847];
16879 xx[313] = cos(xx[311]);
16880 xx[363] = xx[262] * xx[313];
16881 xx[383] = sin(xx[311]);
16882 xx[311] = xx[1] * xx[306] + xx[5] * xx[303];
16883 xx[1] = xx[383] * xx[311];
16884 xx[5] = xx[12] * xx[306] + xx[13] * xx[303];
16885 xx[387] = xx[12] * xx[303] - xx[13] * xx[306];
16886 xx[12] = - (xx[313] * xx[5] + xx[387] * xx[383]);
16887 xx[13] = xx[383] * xx[5] - xx[387] * xx[313];
16888 xx[303] = xx[262] * xx[383] + xx[313] * xx[311];
16889 xx[424] = xx[363] - xx[1];
16890 xx[425] = xx[12];
16891 xx[426] = xx[13];
16892 xx[427] = xx[303];
16893 xx[306] = xx[21] * xx[852] - xx[25] * xx[849];
16894 xx[391] = xx[21] * xx[851] + xx[25] * xx[850];
16895 xx[392] = - xx[391];
16896 xx[393] = xx[25] * xx[851] - xx[21] * xx[850];
16897 xx[397] = - xx[393];
16898 xx[398] = xx[21] * xx[849] + xx[25] * xx[852];
16899 xx[400] = - xx[398];
16900 xx[428] = xx[306];
16901 xx[429] = xx[392];
16902 xx[430] = xx[397];
16903 xx[431] = xx[400];
16904 pm_math_quatCompose(xx + 424, xx + 428, xx + 432);
16905 xx[424] = (xx[393] * xx[306] + xx[391] * xx[398]) * xx[80];
16906 xx[425] = xx[80] * (xx[393] * xx[398] - xx[306] * xx[391]);
16907 xx[426] = xx[22] - (xx[391] * xx[391] + xx[393] * xx[393]) * xx[80];
16908 pm_math_cross3(xx + 424, xx + 267, xx + 436);
16909 pm_math_quatXform(xx + 432, xx + 436, xx + 424);
16910 pm_math_quatXform(xx + 428, xx + 126, xx + 432);
16911 xx[408] = xx[433] * xx[383] - xx[313] * xx[432];
16912 xx[412] = xx[409] * xx[313] + xx[410] * xx[383];
16913 xx[413] = xx[80] * xx[412] * xx[383];
16914 xx[427] = xx[80] * xx[383] * xx[408] - (xx[433] + xx[413]) + xx[410];
16915 xx[434] = xx[262];
16916 xx[435] = xx[311];
16917 xx[436] = xx[387];
16918 xx[437] = xx[80] * xx[412] * xx[313];
16919 xx[412] = xx[432] + xx[80] * xx[313] * xx[408] - xx[437] + xx[409];
16920 xx[408] = xx[387] * xx[412];
16921 xx[438] = xx[387] * xx[427];
16922 xx[439] = xx[262] * xx[412] - xx[427] * xx[311];
16923 xx[440] = - xx[408];
16924 xx[441] = xx[438];
16925 xx[442] = xx[439];
16926 pm_math_cross3(xx + 434, xx + 440, xx + 447);
16927 xx[440] = - (xx[1] - xx[363]);
16928 xx[441] = xx[12];
16929 xx[442] = xx[13];
16930 xx[443] = xx[303];
16931 pm_math_quatCompose(xx + 440, xx + 428, xx + 450);
16932 pm_math_quatXform(xx + 450, xx + 280, xx + 434);
16933 pm_math_quatXform(xx + 428, xx + 167, xx + 459);
16934 pm_math_quatXform(xx + 440, xx + 459, xx + 464);
16935 pm_math_quatXform(xx + 450, xx + 297, xx + 459);
16936 pm_math_quatXform(xx + 428, xx + 176, xx + 467);
16937 pm_math_quatXform(xx + 440, xx + 467, xx + 470);
16938 xx[1] = xx[102] * xx[453];
16939 xx[12] = xx[102] * xx[451] + xx[123] * xx[452];
16940 xx[467] = - xx[1];
16941 xx[468] = - (xx[123] * xx[453]);
16942 xx[469] = xx[12];
16943 pm_math_cross3(xx + 451, xx + 467, xx + 474);
16944 xx[467] = xx[392];
16945 xx[468] = xx[397];
16946 xx[469] = xx[400];
16947 xx[13] = xx[117] * xx[398];
16948 xx[303] = xx[119] * xx[398];
16949 xx[363] = xx[117] * xx[391] + xx[393] * xx[119];
16950 xx[477] = xx[13];
16951 xx[478] = xx[303];
16952 xx[479] = - xx[363];
16953 pm_math_cross3(xx + 467, xx + 477, xx + 480);
16954 xx[467] = xx[80] * (xx[480] + xx[13] * xx[306]) - xx[119];
16955 xx[468] = xx[117] + (xx[303] * xx[306] + xx[481]) * xx[80];
16956 xx[469] = (xx[482] - xx[363] * xx[306]) * xx[80];
16957 pm_math_quatXform(xx + 440, xx + 467, xx + 477);
16958 xx[13] = xx[2] * xx[839];
16959 xx[303] = cos(xx[13]);
16960 xx[363] = xx[312] * xx[303];
16961 xx[392] = sin(xx[13]);
16962 xx[13] = xx[312] * xx[392];
16963 xx[397] = xx[363] + xx[13];
16964 xx[400] = xx[379] * xx[392];
16965 xx[392] = xx[379] * xx[303];
16966 xx[303] = xx[400] - xx[392];
16967 xx[440] = xx[392] + xx[400];
16968 xx[392] = - xx[440];
16969 xx[400] = xx[13] - xx[363];
16970 xx[441] = - xx[397];
16971 xx[442] = xx[303];
16972 xx[443] = xx[392];
16973 xx[444] = xx[400];
16974 pm_math_quatCompose(xx + 140, xx + 441, xx + 480);
16975 pm_math_quatCompose(xx + 68, xx + 480, xx + 484);
16976 pm_math_quatCompose(xx + 42, xx + 484, xx + 488);
16977 pm_math_quatCompose(xx + 31, xx + 488, xx + 492);
16978 xx[467] = xx[80] * (xx[489] * xx[491] - xx[488] * xx[490]);
16979 xx[468] = (xx[488] * xx[489] + xx[490] * xx[491]) * xx[80];
16980 xx[469] = xx[22] - (xx[489] * xx[489] + xx[490] * xx[490]) * xx[80];
16981 pm_math_cross3(xx + 467, xx + 84, xx + 496);
16982 pm_math_quatXform(xx + 492, xx + 496, xx + 467);
16983 pm_math_quatXform(xx + 441, xx + 456, xx + 492);
16984 xx[13] = xx[314] + xx[492];
16985 xx[314] = xx[462] - xx[494];
16986 xx[454] = - xx[13];
16987 xx[455] = - xx[493];
16988 xx[456] = xx[314];
16989 pm_math_quatXform(xx + 140, xx + 454, xx + 494);
16990 xx[363] = xx[494] - xx[104];
16991 xx[451] = xx[495] + xx[96];
16992 xx[452] = xx[496] - xx[107];
16993 xx[454] = xx[363];
16994 xx[455] = xx[451];
16995 xx[456] = xx[452];
16996 pm_math_quatXform(xx + 68, xx + 454, xx + 494);
16997 xx[457] = xx[494] + xx[105];
16998 xx[458] = xx[495] + xx[118];
16999 xx[462] = xx[496] + xx[121];
17000 xx[494] = xx[457];
17001 xx[495] = xx[458];
17002 xx[496] = xx[462];
17003 pm_math_quatXform(xx + 42, xx + 494, xx + 497);
17004 xx[492] = xx[498] + xx[148];
17005 xx[498] = xx[497] + xx[147];
17006 xx[497] = xx[492] * xx[19] - xx[498] * xx[15];
17007 xx[499] = xx[80] * xx[19] * xx[497] - (xx[492] - xx[145]) - xx[135];
17008 xx[500] = xx[498] + xx[80] * xx[15] * xx[497] + xx[152] - xx[131];
17009 xx[497] = xx[26] * xx[500];
17010 xx[501] = xx[26] * xx[499];
17011 xx[502] = xx[6] * xx[500] - xx[499] * xx[14];
17012 xx[503] = - xx[497];
17013 xx[504] = xx[501];
17014 xx[505] = xx[502];
17015 pm_math_cross3(xx + 149, xx + 503, xx + 507);
17016 pm_math_quatCompose(xx + 170, xx + 484, xx + 510);
17017 xx[503] = xx[4] * xx[487];
17018 xx[504] = xx[4] * xx[485] + xx[486];
17019 xx[514] = xx[503];
17020 xx[515] = xx[487];
17021 xx[516] = - xx[504];
17022 pm_math_cross3(xx + 485, xx + 514, xx + 517);
17023 xx[505] = xx[484] * xx[487];
17024 xx[514] = xx[22] + (xx[517] - xx[484] * xx[503]) * xx[80];
17025 xx[515] = xx[80] * (xx[518] - xx[505]) - xx[4];
17026 xx[516] = xx[80] * (xx[519] + xx[484] * xx[504]);
17027 pm_math_cross3(xx + 514, xx + 84, xx + 517);
17028 pm_math_quatXform(xx + 510, xx + 517, xx + 514);
17029 xx[504] = - (xx[462] * xx[4]);
17030 xx[517] = xx[504];
17031 xx[518] = - xx[462];
17032 xx[519] = xx[458] + xx[457] * xx[4];
17033 pm_math_quatXform(xx + 42, xx + 517, xx + 520);
17034 xx[517] = xx[520] + xx[183];
17035 xx[518] = xx[521] + xx[184];
17036 xx[519] = xx[522] + xx[185];
17037 pm_math_quatXform(xx + 161, xx + 517, xx + 520);
17038 xx[517] = xx[485] - xx[4] * xx[486];
17039 xx[523] = - xx[487];
17040 xx[524] = xx[503];
17041 xx[525] = xx[517];
17042 pm_math_cross3(xx + 485, xx + 523, xx + 526);
17043 xx[523] = xx[4] + (xx[505] + xx[526]) * xx[80];
17044 xx[524] = xx[22] + xx[80] * (xx[527] - xx[4] * xx[505]);
17045 xx[525] = xx[80] * (xx[528] - xx[484] * xx[517]);
17046 pm_math_cross3(xx + 523, xx + 84, xx + 517);
17047 pm_math_quatXform(xx + 510, xx + 517, xx + 523);
17048 xx[517] = xx[462];
17049 xx[518] = xx[504];
17050 xx[519] = xx[458] * xx[4] - xx[457];
17051 pm_math_quatXform(xx + 42, xx + 517, xx + 503);
17052 xx[517] = xx[503] + xx[197];
17053 xx[518] = xx[504] + xx[198];
17054 xx[519] = xx[505] + xx[199];
17055 pm_math_quatXform(xx + 161, xx + 517, xx + 503);
17056 xx[517] = xx[80] * (xx[485] * xx[487] - xx[484] * xx[486]);
17057 xx[518] = (xx[484] * xx[485] + xx[486] * xx[487]) * xx[80];
17058 xx[519] = xx[22] - (xx[485] * xx[485] + xx[486] * xx[486]) * xx[80];
17059 pm_math_cross3(xx + 517, xx + 84, xx + 526);
17060 pm_math_quatXform(xx + 510, xx + 526, xx + 517);
17061 xx[462] = xx[457] * xx[38];
17062 xx[510] = xx[458] * xx[38];
17063 xx[511] = xx[457] * xx[29] + xx[36] * xx[458];
17064 xx[526] = xx[462];
17065 xx[527] = xx[510];
17066 xx[528] = - xx[511];
17067 pm_math_cross3(xx + 179, xx + 526, xx + 529);
17068 xx[526] = xx[80] * (xx[529] + xx[462] * xx[28]) + xx[37] - xx[458] - xx[119];
17069 xx[527] = xx[457] + xx[80] * (xx[530] + xx[510] * xx[28]) + xx[23] + xx[117];
17070 xx[528] = (xx[531] - xx[28] * xx[511]) * xx[80] + xx[27];
17071 pm_math_quatXform(xx + 161, xx + 526, xx + 510);
17072 pm_math_quatCompose(xx + 212, xx + 480, xx + 526);
17073 xx[457] = xx[482] * xx[482];
17074 xx[458] = xx[483] * xx[483];
17075 xx[462] = xx[481] * xx[482];
17076 xx[513] = xx[480] * xx[483];
17077 xx[530] = xx[480] * xx[482];
17078 xx[531] = xx[481] * xx[483];
17079 xx[536] = xx[22] - (xx[457] + xx[458]) * xx[80];
17080 xx[537] = xx[80] * (xx[462] - xx[513]);
17081 xx[538] = (xx[530] + xx[531]) * xx[80];
17082 pm_math_cross3(xx + 536, xx + 84, xx + 539);
17083 pm_math_quatXform(xx + 526, xx + 539, xx + 536);
17084 xx[533] = xx[48] * xx[451];
17085 xx[534] = xx[50] * xx[452];
17086 xx[539] = xx[533] + xx[534];
17087 xx[540] = xx[451] * xx[47];
17088 xx[541] = xx[452] * xx[47];
17089 xx[542] = - xx[539];
17090 xx[543] = - xx[540];
17091 xx[544] = - xx[541];
17092 pm_math_cross3(xx + 220, xx + 542, xx + 549);
17093 xx[542] = xx[80] * (xx[549] - xx[539] * xx[46]) + xx[195];
17094 xx[543] = xx[80] * (xx[550] - xx[540] * xx[46]) + xx[182] - xx[452] - xx[74];
17095 xx[544] = xx[451] + xx[80] * (xx[551] - xx[541] * xx[46]) + xx[192] - xx[73];
17096 pm_math_quatXform(xx + 170, xx + 542, xx + 539);
17097 xx[542] = xx[481] * xx[481];
17098 xx[543] = xx[482] * xx[483];
17099 xx[544] = xx[480] * xx[481];
17100 xx[549] = (xx[513] + xx[462]) * xx[80];
17101 xx[550] = xx[22] - (xx[458] + xx[542]) * xx[80];
17102 xx[551] = xx[80] * (xx[543] - xx[544]);
17103 pm_math_cross3(xx + 549, xx + 84, xx + 552);
17104 pm_math_quatXform(xx + 526, xx + 552, xx + 549);
17105 xx[458] = xx[48] * xx[363];
17106 xx[462] = xx[363] * xx[47];
17107 xx[513] = xx[462] - xx[534];
17108 xx[534] = xx[48] * xx[452];
17109 xx[552] = xx[458];
17110 xx[553] = xx[513];
17111 xx[554] = xx[534];
17112 pm_math_cross3(xx + 220, xx + 552, xx + 555);
17113 xx[552] = xx[452] + (xx[458] * xx[46] + xx[555]) * xx[80] + xx[175] + xx[74];
17114 xx[553] = (xx[46] * xx[513] + xx[556]) * xx[80] + xx[53];
17115 xx[554] = (xx[534] * xx[46] + xx[557]) * xx[80] + xx[64] - xx[363] - xx[72];
17116 pm_math_quatXform(xx + 170, xx + 552, xx + 555);
17117 xx[552] = xx[80] * (xx[531] - xx[530]);
17118 xx[553] = (xx[544] + xx[543]) * xx[80];
17119 xx[554] = xx[22] - (xx[542] + xx[457]) * xx[80];
17120 pm_math_cross3(xx + 552, xx + 84, xx + 542);
17121 pm_math_quatXform(xx + 526, xx + 542, xx + 552);
17122 xx[452] = xx[50] * xx[363];
17123 xx[457] = xx[50] * xx[451];
17124 xx[458] = xx[462] - xx[533];
17125 xx[526] = xx[452];
17126 xx[527] = xx[457];
17127 xx[528] = xx[458];
17128 pm_math_cross3(xx + 220, xx + 526, xx + 529);
17129 xx[526] = (xx[452] * xx[46] + xx[529]) * xx[80] + xx[41] - xx[451] + xx[73];
17130 xx[527] = xx[363] + (xx[457] * xx[46] + xx[530]) * xx[80] + xx[17] + xx[72];
17131 xx[528] = (xx[46] * xx[458] + xx[531]) * xx[80] + xx[35];
17132 pm_math_quatXform(xx + 170, xx + 526, xx + 529);
17133 pm_math_quatCompose(xx + 216, xx + 441, xx + 542);
17134 xx[441] = xx[303];
17135 xx[442] = xx[392];
17136 xx[443] = xx[400];
17137 xx[363] = xx[440] * xx[63];
17138 xx[392] = xx[63] * xx[303] - xx[57] * xx[400];
17139 xx[444] = xx[440] * xx[57];
17140 xx[526] = xx[363];
17141 xx[527] = xx[392];
17142 xx[528] = - xx[444];
17143 pm_math_cross3(xx + 441, xx + 526, xx + 558);
17144 xx[526] = xx[80] * (xx[558] + xx[397] * xx[363]) - xx[57];
17145 xx[527] = xx[80] * (xx[559] + xx[397] * xx[392]);
17146 xx[528] = (xx[560] - xx[397] * xx[444]) * xx[80] - xx[63];
17147 pm_math_cross3(xx + 526, xx + 84, xx + 558);
17148 pm_math_quatXform(xx + 542, xx + 558, xx + 526);
17149 xx[558] = - (xx[63] * xx[493]);
17150 xx[559] = xx[63] * xx[13] + xx[57] * xx[314];
17151 xx[560] = xx[57] * xx[493];
17152 pm_math_quatXform(xx + 140, xx + 558, xx + 561);
17153 xx[558] = xx[561] + xx[60];
17154 xx[559] = xx[562] + xx[61] - xx[67];
17155 xx[560] = xx[563] - xx[40];
17156 pm_math_quatXform(xx + 212, xx + 558, xx + 561);
17157 xx[363] = xx[72] * xx[545];
17158 xx[392] = xx[72] * xx[543] - xx[73] * xx[544];
17159 xx[558] = - xx[363];
17160 xx[559] = xx[73] * xx[545];
17161 xx[560] = xx[392];
17162 pm_math_cross3(xx + 543, xx + 558, xx + 564);
17163 xx[444] = xx[327] * xx[400];
17164 xx[451] = xx[401] * xx[400];
17165 xx[452] = xx[327] * xx[303] + xx[440] * xx[401];
17166 xx[558] = - xx[444];
17167 xx[559] = xx[451];
17168 xx[560] = xx[452];
17169 pm_math_cross3(xx + 441, xx + 558, xx + 567);
17170 xx[457] = xx[401] + xx[80] * (xx[567] + xx[397] * xx[444]);
17171 xx[401] = xx[327] + (xx[568] - xx[397] * xx[451]) * xx[80];
17172 xx[327] = xx[569] - xx[397] * xx[452];
17173 xx[444] = xx[327] * xx[80];
17174 xx[558] = xx[457];
17175 xx[559] = xx[401];
17176 xx[560] = xx[444];
17177 pm_math_quatXform(xx + 216, xx + 558, xx + 567);
17178 xx[451] = xx[2] * xx[869];
17179 xx[452] = cos(xx[451]);
17180 xx[458] = xx[2] * xx[867];
17181 xx[462] = cos(xx[458]);
17182 xx[513] = sin(xx[458]);
17183 xx[458] = xx[399] * xx[462] + xx[445] * xx[513];
17184 xx[533] = xx[452] * xx[458];
17185 xx[534] = xx[399] * xx[513] - xx[445] * xx[462];
17186 xx[399] = sin(xx[451]);
17187 xx[445] = xx[534] * xx[399];
17188 xx[451] = xx[463] * xx[462] - xx[473] * xx[513];
17189 xx[543] = xx[473] * xx[462] + xx[463] * xx[513];
17190 xx[462] = - (xx[451] * xx[452] - xx[399] * xx[543]);
17191 xx[463] = xx[451] * xx[399] + xx[452] * xx[543];
17192 xx[473] = xx[399] * xx[458] + xx[534] * xx[452];
17193 xx[570] = xx[533] - xx[445];
17194 xx[571] = xx[462];
17195 xx[572] = xx[463];
17196 xx[573] = xx[473];
17197 xx[513] = xx[21] * xx[874] - xx[25] * xx[871];
17198 xx[544] = xx[21] * xx[873] + xx[25] * xx[872];
17199 xx[546] = - xx[544];
17200 xx[558] = xx[25] * xx[873] - xx[21] * xx[872];
17201 xx[559] = - xx[558];
17202 xx[560] = xx[21] * xx[871] + xx[25] * xx[874];
17203 xx[574] = - xx[560];
17204 xx[575] = xx[513];
17205 xx[576] = xx[546];
17206 xx[577] = xx[559];
17207 xx[578] = xx[574];
17208 pm_math_quatCompose(xx + 570, xx + 575, xx + 579);
17209 xx[570] = (xx[558] * xx[513] + xx[560] * xx[544]) * xx[80];
17210 xx[571] = xx[80] * (xx[558] * xx[560] - xx[513] * xx[544]);
17211 xx[572] = xx[22] - (xx[544] * xx[544] + xx[558] * xx[558]) * xx[80];
17212 pm_math_cross3(xx + 570, xx + 267, xx + 585);
17213 pm_math_quatXform(xx + 579, xx + 585, xx + 570);
17214 pm_math_quatXform(xx + 575, xx + 126, xx + 579);
17215 xx[573] = xx[580] * xx[399] - xx[452] * xx[579];
17216 xx[581] = xx[547] * xx[452] + xx[548] * xx[399];
17217 xx[582] = xx[80] * xx[581] * xx[399];
17218 xx[583] = xx[80] * xx[399] * xx[573] - (xx[580] - xx[582]) - xx[548];
17219 xx[585] = - xx[543];
17220 xx[586] = xx[458];
17221 xx[587] = xx[534];
17222 xx[588] = xx[585];
17223 xx[589] = xx[80] * xx[581] * xx[452];
17224 xx[581] = xx[579] + xx[80] * xx[452] * xx[573] + xx[589] - xx[547];
17225 xx[573] = xx[581] * xx[543];
17226 xx[590] = xx[583] * xx[543];
17227 xx[591] = xx[581] * xx[458] - xx[534] * xx[583];
17228 xx[592] = xx[573];
17229 xx[593] = - xx[590];
17230 xx[594] = xx[591];
17231 pm_math_cross3(xx + 586, xx + 592, xx + 598);
17232 xx[602] = - (xx[445] - xx[533]);
17233 xx[603] = xx[462];
17234 xx[604] = xx[463];
17235 xx[605] = xx[473];
17236 pm_math_quatCompose(xx + 602, xx + 575, xx + 610);
17237 pm_math_quatXform(xx + 610, xx + 280, xx + 586);
17238 pm_math_quatXform(xx + 575, xx + 167, xx + 592);
17239 pm_math_quatXform(xx + 602, xx + 592, xx + 606);
17240 pm_math_quatXform(xx + 610, xx + 297, xx + 592);
17241 pm_math_quatXform(xx + 575, xx + 176, xx + 614);
17242 pm_math_quatXform(xx + 602, xx + 614, xx + 617);
17243 xx[445] = xx[102] * xx[613];
17244 xx[462] = xx[102] * xx[611] + xx[123] * xx[612];
17245 xx[614] = - xx[445];
17246 xx[615] = - (xx[123] * xx[613]);
17247 xx[616] = xx[462];
17248 pm_math_cross3(xx + 611, xx + 614, xx + 620);
17249 xx[614] = xx[546];
17250 xx[615] = xx[559];
17251 xx[616] = xx[574];
17252 xx[463] = xx[117] * xx[560];
17253 xx[473] = xx[119] * xx[560];
17254 xx[533] = xx[117] * xx[544] + xx[558] * xx[119];
17255 xx[623] = xx[463];
17256 xx[624] = xx[473];
17257 xx[625] = - xx[533];
17258 pm_math_cross3(xx + 614, xx + 623, xx + 626);
17259 xx[614] = xx[80] * (xx[626] + xx[463] * xx[513]) - xx[119];
17260 xx[615] = xx[117] + (xx[473] * xx[513] + xx[627]) * xx[80];
17261 xx[616] = (xx[628] - xx[533] * xx[513]) * xx[80];
17262 pm_math_quatXform(xx + 602, xx + 614, xx + 623);
17263 xx[463] = xx[2] * xx[841];
17264 xx[473] = cos(xx[463]);
17265 xx[533] = xx[312] * xx[473];
17266 xx[546] = sin(xx[463]);
17267 xx[463] = xx[312] * xx[546];
17268 xx[312] = xx[533] + xx[463];
17269 xx[559] = xx[379] * xx[473];
17270 xx[473] = xx[379] * xx[546];
17271 xx[379] = xx[559] - xx[473];
17272 xx[546] = xx[559] + xx[473];
17273 xx[473] = xx[533] - xx[463];
17274 xx[602] = xx[312];
17275 xx[603] = xx[379];
17276 xx[604] = xx[546];
17277 xx[605] = xx[473];
17278 pm_math_quatCompose(xx + 140, xx + 602, xx + 626);
17279 pm_math_quatCompose(xx + 68, xx + 626, xx + 630);
17280 pm_math_quatCompose(xx + 42, xx + 630, xx + 638);
17281 pm_math_quatCompose(xx + 31, xx + 638, xx + 644);
17282 xx[614] = xx[80] * (xx[639] * xx[641] - xx[638] * xx[640]);
17283 xx[615] = (xx[638] * xx[639] + xx[640] * xx[641]) * xx[80];
17284 xx[616] = xx[22] - (xx[639] * xx[639] + xx[640] * xx[640]) * xx[80];
17285 pm_math_cross3(xx + 614, xx + 84, xx + 634);
17286 pm_math_quatXform(xx + 644, xx + 634, xx + 614);
17287 pm_math_quatXform(xx + 602, xx + 595, xx + 634);
17288 xx[463] = xx[446] + xx[634];
17289 xx[446] = xx[601] - xx[636];
17290 xx[595] = - xx[463];
17291 xx[596] = - xx[635];
17292 xx[597] = xx[446];
17293 pm_math_quatXform(xx + 140, xx + 595, xx + 644);
17294 xx[533] = xx[644] - xx[104];
17295 xx[559] = xx[645] + xx[96];
17296 xx[574] = xx[646] - xx[107];
17297 xx[595] = xx[533];
17298 xx[596] = xx[559];
17299 xx[597] = xx[574];
17300 pm_math_quatXform(xx + 68, xx + 595, xx + 644);
17301 xx[601] = xx[644] + xx[105];
17302 xx[611] = xx[645] + xx[118];
17303 xx[612] = xx[646] + xx[121];
17304 xx[644] = xx[601];
17305 xx[645] = xx[611];
17306 xx[646] = xx[612];
17307 pm_math_quatXform(xx + 42, xx + 644, xx + 647);
17308 xx[634] = xx[648] + xx[148];
17309 xx[636] = xx[647] + xx[147];
17310 xx[642] = xx[634] * xx[19] - xx[636] * xx[15];
17311 xx[647] = xx[80] * xx[19] * xx[642] - (xx[634] - xx[145]) - xx[135];
17312 xx[648] = xx[636] + xx[80] * xx[15] * xx[642] + xx[152] - xx[131];
17313 xx[642] = xx[26] * xx[648];
17314 xx[649] = xx[26] * xx[647];
17315 xx[650] = xx[6] * xx[648] - xx[647] * xx[14];
17316 xx[651] = - xx[642];
17317 xx[652] = xx[649];
17318 xx[653] = xx[650];
17319 pm_math_cross3(xx + 149, xx + 651, xx + 654);
17320 pm_math_quatCompose(xx + 170, xx + 630, xx + 657);
17321 xx[651] = xx[4] * xx[633];
17322 xx[652] = xx[4] * xx[631] + xx[632];
17323 xx[661] = xx[651];
17324 xx[662] = xx[633];
17325 xx[663] = - xx[652];
17326 pm_math_cross3(xx + 631, xx + 661, xx + 664);
17327 xx[653] = xx[630] * xx[633];
17328 xx[661] = xx[22] + (xx[664] - xx[630] * xx[651]) * xx[80];
17329 xx[662] = xx[80] * (xx[665] - xx[653]) - xx[4];
17330 xx[663] = xx[80] * (xx[666] + xx[630] * xx[652]);
17331 pm_math_cross3(xx + 661, xx + 84, xx + 664);
17332 pm_math_quatXform(xx + 657, xx + 664, xx + 661);
17333 xx[652] = - (xx[612] * xx[4]);
17334 xx[664] = xx[652];
17335 xx[665] = - xx[612];
17336 xx[666] = xx[611] + xx[601] * xx[4];
17337 pm_math_quatXform(xx + 42, xx + 664, xx + 667);
17338 xx[664] = xx[667] + xx[183];
17339 xx[665] = xx[668] + xx[184];
17340 xx[666] = xx[669] + xx[185];
17341 pm_math_quatXform(xx + 161, xx + 664, xx + 667);
17342 xx[664] = xx[631] - xx[4] * xx[632];
17343 xx[673] = - xx[633];
17344 xx[674] = xx[651];
17345 xx[675] = xx[664];
17346 pm_math_cross3(xx + 631, xx + 673, xx + 676);
17347 xx[673] = xx[4] + (xx[653] + xx[676]) * xx[80];
17348 xx[674] = xx[22] + xx[80] * (xx[677] - xx[4] * xx[653]);
17349 xx[675] = xx[80] * (xx[678] - xx[630] * xx[664]);
17350 pm_math_cross3(xx + 673, xx + 84, xx + 664);
17351 pm_math_quatXform(xx + 657, xx + 664, xx + 673);
17352 xx[664] = xx[612];
17353 xx[665] = xx[652];
17354 xx[666] = xx[611] * xx[4] - xx[601];
17355 pm_math_quatXform(xx + 42, xx + 664, xx + 651);
17356 xx[664] = xx[651] + xx[197];
17357 xx[665] = xx[652] + xx[198];
17358 xx[666] = xx[653] + xx[199];
17359 pm_math_quatXform(xx + 161, xx + 664, xx + 651);
17360 xx[664] = xx[80] * (xx[631] * xx[633] - xx[630] * xx[632]);
17361 xx[665] = (xx[630] * xx[631] + xx[632] * xx[633]) * xx[80];
17362 xx[666] = xx[22] - (xx[631] * xx[631] + xx[632] * xx[632]) * xx[80];
17363 pm_math_cross3(xx + 664, xx + 84, xx + 676);
17364 pm_math_quatXform(xx + 657, xx + 676, xx + 664);
17365 xx[612] = xx[601] * xx[38];
17366 xx[657] = xx[611] * xx[38];
17367 xx[658] = xx[601] * xx[29] + xx[36] * xx[611];
17368 xx[676] = xx[612];
17369 xx[677] = xx[657];
17370 xx[678] = - xx[658];
17371 pm_math_cross3(xx + 179, xx + 676, xx + 681);
17372 xx[676] = xx[80] * (xx[681] + xx[612] * xx[28]) + xx[37] - xx[611] - xx[119];
17373 xx[677] = xx[601] + xx[80] * (xx[682] + xx[657] * xx[28]) + xx[23] + xx[117];
17374 xx[678] = (xx[683] - xx[28] * xx[658]) * xx[80] + xx[27];
17375 pm_math_quatXform(xx + 161, xx + 676, xx + 657);
17376 pm_math_quatCompose(xx + 212, xx + 626, xx + 676);
17377 xx[601] = xx[628] * xx[628];
17378 xx[611] = xx[629] * xx[629];
17379 xx[612] = xx[627] * xx[628];
17380 xx[660] = xx[626] * xx[629];
17381 xx[670] = xx[626] * xx[628];
17382 xx[671] = xx[627] * xx[629];
17383 xx[681] = xx[22] - (xx[601] + xx[611]) * xx[80];
17384 xx[682] = xx[80] * (xx[612] - xx[660]);
17385 xx[683] = (xx[670] + xx[671]) * xx[80];
17386 pm_math_cross3(xx + 681, xx + 84, xx + 686);
17387 pm_math_quatXform(xx + 676, xx + 686, xx + 681);
17388 xx[686] = xx[48] * xx[559];
17389 xx[687] = xx[50] * xx[574];
17390 xx[688] = xx[686] + xx[687];
17391 xx[689] = xx[559] * xx[47];
17392 xx[690] = xx[574] * xx[47];
17393 xx[691] = - xx[688];
17394 xx[692] = - xx[689];
17395 xx[693] = - xx[690];
17396 pm_math_cross3(xx + 220, xx + 691, xx + 694);
17397 xx[691] = xx[80] * (xx[694] - xx[688] * xx[46]) + xx[195];
17398 xx[692] = xx[80] * (xx[695] - xx[689] * xx[46]) + xx[182] - xx[574] - xx[74];
17399 xx[693] = xx[559] + xx[80] * (xx[696] - xx[690] * xx[46]) + xx[192] - xx[73];
17400 pm_math_quatXform(xx + 170, xx + 691, xx + 688);
17401 xx[691] = xx[627] * xx[627];
17402 xx[692] = xx[628] * xx[629];
17403 xx[693] = xx[626] * xx[627];
17404 xx[694] = (xx[660] + xx[612]) * xx[80];
17405 xx[695] = xx[22] - (xx[611] + xx[691]) * xx[80];
17406 xx[696] = xx[80] * (xx[692] - xx[693]);
17407 pm_math_cross3(xx + 694, xx + 84, xx + 697);
17408 pm_math_quatXform(xx + 676, xx + 697, xx + 694);
17409 xx[611] = xx[48] * xx[533];
17410 xx[612] = xx[533] * xx[47];
17411 xx[660] = xx[612] - xx[687];
17412 xx[687] = xx[48] * xx[574];
17413 xx[697] = xx[611];
17414 xx[698] = xx[660];
17415 xx[699] = xx[687];
17416 pm_math_cross3(xx + 220, xx + 697, xx + 700);
17417 xx[697] = xx[574] + (xx[611] * xx[46] + xx[700]) * xx[80] + xx[175] + xx[74];
17418 xx[698] = (xx[46] * xx[660] + xx[701]) * xx[80] + xx[53];
17419 xx[699] = (xx[687] * xx[46] + xx[702]) * xx[80] + xx[64] - xx[533] - xx[72];
17420 pm_math_quatXform(xx + 170, xx + 697, xx + 700);
17421 xx[697] = xx[80] * (xx[671] - xx[670]);
17422 xx[698] = (xx[693] + xx[692]) * xx[80];
17423 xx[699] = xx[22] - (xx[691] + xx[601]) * xx[80];
17424 pm_math_cross3(xx + 697, xx + 84, xx + 691);
17425 pm_math_quatXform(xx + 676, xx + 691, xx + 697);
17426 xx[574] = xx[50] * xx[533];
17427 xx[601] = xx[50] * xx[559];
17428 xx[611] = xx[612] - xx[686];
17429 xx[676] = xx[574];
17430 xx[677] = xx[601];
17431 xx[678] = xx[611];
17432 pm_math_cross3(xx + 220, xx + 676, xx + 691);
17433 xx[676] = (xx[574] * xx[46] + xx[691]) * xx[80] + xx[41] - xx[559] + xx[73];
17434 xx[677] = xx[533] + (xx[601] * xx[46] + xx[692]) * xx[80] + xx[17] + xx[72];
17435 xx[678] = (xx[46] * xx[611] + xx[693]) * xx[80] + xx[35];
17436 pm_math_quatXform(xx + 170, xx + 676, xx + 691);
17437 pm_math_quatCompose(xx + 216, xx + 602, xx + 676);
17438 xx[601] = xx[379];
17439 xx[602] = xx[546];
17440 xx[603] = xx[473];
17441 xx[533] = xx[546] * xx[63];
17442 xx[559] = xx[63] * xx[379] - xx[57] * xx[473];
17443 xx[574] = xx[546] * xx[57];
17444 xx[703] = - xx[533];
17445 xx[704] = xx[559];
17446 xx[705] = xx[574];
17447 pm_math_cross3(xx + 601, xx + 703, xx + 706);
17448 xx[703] = xx[80] * (xx[706] + xx[312] * xx[533]) - xx[57];
17449 xx[704] = xx[80] * (xx[707] - xx[312] * xx[559]);
17450 xx[705] = (xx[708] - xx[312] * xx[574]) * xx[80] - xx[63];
17451 pm_math_cross3(xx + 703, xx + 84, xx + 706);
17452 pm_math_quatXform(xx + 676, xx + 706, xx + 703);
17453 xx[706] = - (xx[63] * xx[635]);
17454 xx[707] = xx[63] * xx[463] + xx[57] * xx[446];
17455 xx[708] = xx[57] * xx[635];
17456 pm_math_quatXform(xx + 140, xx + 706, xx + 709);
17457 xx[706] = xx[709] + xx[60];
17458 xx[707] = xx[710] + xx[61] - xx[67];
17459 xx[708] = xx[711] - xx[40];
17460 pm_math_quatXform(xx + 212, xx + 706, xx + 709);
17461 xx[533] = xx[72] * xx[679];
17462 xx[559] = xx[72] * xx[677] - xx[73] * xx[678];
17463 xx[706] = - xx[533];
17464 xx[707] = xx[73] * xx[679];
17465 xx[708] = xx[559];
17466 pm_math_cross3(xx + 677, xx + 706, xx + 712);
17467 xx[574] = xx[506] * xx[473];
17468 xx[604] = xx[535] * xx[473];
17469 xx[605] = xx[506] * xx[379] + xx[546] * xx[535];
17470 xx[706] = xx[574];
17471 xx[707] = xx[604];
17472 xx[708] = - xx[605];
17473 pm_math_cross3(xx + 601, xx + 706, xx + 715);
17474 xx[611] = xx[535] + xx[80] * (xx[715] + xx[312] * xx[574]);
17475 xx[535] = (xx[312] * xx[604] + xx[716]) * xx[80] - xx[506];
17476 xx[506] = xx[717] - xx[312] * xx[605];
17477 xx[574] = xx[506] * xx[80];
17478 xx[706] = xx[611];
17479 xx[707] = xx[535];
17480 xx[708] = xx[574];
17481 pm_math_quatXform(xx + 216, xx + 706, xx + 715);
17482 xx[604] = xx[2] * xx[880];
17483 xx[605] = cos(xx[604]);
17484 xx[612] = xx[2] * xx[878];
17485 xx[660] = cos(xx[612]);
17486 xx[670] = sin(xx[612]);
17487 xx[612] = xx[532] * xx[660] + xx[584] * xx[670];
17488 xx[671] = xx[605] * xx[612];
17489 xx[677] = xx[584] * xx[660] - xx[532] * xx[670];
17490 xx[532] = sin(xx[604]);
17491 xx[584] = xx[677] * xx[532];
17492 xx[604] = xx[609] * xx[670] - xx[637] * xx[660];
17493 xx[678] = xx[609] * xx[660] + xx[637] * xx[670];
17494 xx[609] = - (xx[604] * xx[605] + xx[532] * xx[678]);
17495 xx[637] = xx[604] * xx[532] - xx[605] * xx[678];
17496 xx[660] = xx[677] * xx[605] - xx[532] * xx[612];
17497 xx[721] = - (xx[671] + xx[584]);
17498 xx[722] = xx[609];
17499 xx[723] = xx[637];
17500 xx[724] = xx[660];
17501 xx[670] = xx[21] * xx[885] - xx[25] * xx[882];
17502 xx[686] = xx[21] * xx[884] + xx[25] * xx[883];
17503 xx[687] = - xx[686];
17504 xx[706] = xx[25] * xx[884] - xx[21] * xx[883];
17505 xx[707] = - xx[706];
17506 xx[708] = xx[21] * xx[882] + xx[25] * xx[885];
17507 xx[718] = - xx[708];
17508 xx[725] = xx[670];
17509 xx[726] = xx[687];
17510 xx[727] = xx[707];
17511 xx[728] = xx[718];
17512 pm_math_quatCompose(xx + 721, xx + 725, xx + 729);
17513 xx[721] = (xx[706] * xx[670] + xx[708] * xx[686]) * xx[80];
17514 xx[722] = xx[80] * (xx[706] * xx[708] - xx[670] * xx[686]);
17515 xx[723] = xx[22] - (xx[686] * xx[686] + xx[706] * xx[706]) * xx[80];
17516 pm_math_cross3(xx + 721, xx + 267, xx + 733);
17517 pm_math_quatXform(xx + 729, xx + 733, xx + 721);
17518 pm_math_quatXform(xx + 725, xx + 126, xx + 729);
17519 xx[719] = xx[730] * xx[532] - xx[605] * xx[729];
17520 xx[724] = xx[684] * xx[605] + xx[685] * xx[532];
17521 xx[731] = xx[80] * xx[724] * xx[532];
17522 xx[732] = xx[80] * xx[532] * xx[719] - (xx[730] - xx[731]) - xx[685];
17523 xx[733] = - xx[612];
17524 xx[734] = xx[733];
17525 xx[735] = xx[677];
17526 xx[736] = xx[678];
17527 xx[737] = xx[80] * xx[724] * xx[605];
17528 xx[724] = xx[729] + xx[80] * xx[605] * xx[719] + xx[737] - xx[684];
17529 xx[719] = xx[724] * xx[678];
17530 xx[739] = xx[732] * xx[678];
17531 xx[740] = xx[724] * xx[612] + xx[677] * xx[732];
17532 xx[741] = - xx[719];
17533 xx[742] = xx[739];
17534 xx[743] = - xx[740];
17535 pm_math_cross3(xx + 734, xx + 741, xx + 748);
17536 xx[741] = - (xx[584] + xx[671]);
17537 xx[742] = xx[609];
17538 xx[743] = xx[637];
17539 xx[744] = xx[660];
17540 pm_math_quatCompose(xx + 741, xx + 725, xx + 751);
17541 pm_math_quatXform(xx + 751, xx + 280, xx + 734);
17542 pm_math_quatXform(xx + 725, xx + 167, xx + 755);
17543 pm_math_quatXform(xx + 741, xx + 755, xx + 758);
17544 pm_math_quatXform(xx + 751, xx + 297, xx + 755);
17545 pm_math_quatXform(xx + 725, xx + 176, xx + 761);
17546 pm_math_quatXform(xx + 741, xx + 761, xx + 764);
17547 xx[584] = xx[102] * xx[754];
17548 xx[609] = xx[102] * xx[752] + xx[123] * xx[753];
17549 xx[761] = - xx[584];
17550 xx[762] = - (xx[123] * xx[754]);
17551 xx[763] = xx[609];
17552 pm_math_cross3(xx + 752, xx + 761, xx + 767);
17553 xx[761] = xx[687];
17554 xx[762] = xx[707];
17555 xx[763] = xx[718];
17556 xx[637] = xx[117] * xx[708];
17557 xx[660] = xx[119] * xx[708];
17558 xx[671] = xx[117] * xx[686] + xx[706] * xx[119];
17559 xx[770] = xx[637];
17560 xx[771] = xx[660];
17561 xx[772] = - xx[671];
17562 pm_math_cross3(xx + 761, xx + 770, xx + 773);
17563 xx[761] = xx[80] * (xx[773] + xx[637] * xx[670]) - xx[119];
17564 xx[762] = xx[117] + (xx[660] * xx[670] + xx[774]) * xx[80];
17565 xx[763] = (xx[775] - xx[671] * xx[670]) * xx[80];
17566 pm_math_quatXform(xx + 741, xx + 761, xx + 770);
17567 xx[637] = xx[2] * xx[806];
17568 xx[660] = cos(xx[637]);
17569 xx[671] = xx[2] * xx[804];
17570 xx[687] = cos(xx[671]);
17571 xx[707] = sin(xx[671]);
17572 xx[671] = xx[643] * xx[687] + xx[672] * xx[707];
17573 xx[718] = xx[660] * xx[671];
17574 xx[741] = xx[672] * xx[687] - xx[643] * xx[707];
17575 xx[643] = sin(xx[637]);
17576 xx[637] = xx[741] * xx[643];
17577 xx[672] = xx[680] * xx[687] - xx[720] * xx[707];
17578 xx[742] = xx[720] * xx[687] + xx[680] * xx[707];
17579 xx[680] = - (xx[672] * xx[660] - xx[643] * xx[742]);
17580 xx[687] = xx[672] * xx[643] + xx[660] * xx[742];
17581 xx[707] = xx[741] * xx[660] - xx[643] * xx[671];
17582 xx[773] = - (xx[718] + xx[637]);
17583 xx[774] = xx[680];
17584 xx[775] = xx[687];
17585 xx[776] = xx[707];
17586 xx[720] = xx[21] * xx[811] - xx[25] * xx[808];
17587 xx[743] = xx[21] * xx[810] + xx[25] * xx[809];
17588 xx[744] = - xx[743];
17589 xx[745] = xx[25] * xx[810] - xx[21] * xx[809];
17590 xx[752] = - xx[745];
17591 xx[753] = xx[21] * xx[808] + xx[25] * xx[811];
17592 xx[761] = - xx[753];
17593 xx[777] = xx[720];
17594 xx[778] = xx[744];
17595 xx[779] = xx[752];
17596 xx[780] = xx[761];
17597 pm_math_quatCompose(xx + 773, xx + 777, xx + 781);
17598 xx[773] = (xx[745] * xx[720] + xx[743] * xx[753]) * xx[80];
17599 xx[774] = xx[80] * (xx[745] * xx[753] - xx[743] * xx[720]);
17600 xx[775] = xx[22] - (xx[743] * xx[743] + xx[745] * xx[745]) * xx[80];
17601 pm_math_cross3(xx + 773, xx + 267, xx + 785);
17602 pm_math_quatXform(xx + 781, xx + 785, xx + 773);
17603 pm_math_quatXform(xx + 777, xx + 126, xx + 781);
17604 xx[762] = xx[782] * xx[643] - xx[660] * xx[781];
17605 xx[763] = xx[746] * xx[660] - xx[747] * xx[643];
17606 xx[776] = xx[80] * xx[763] * xx[643];
17607 xx[783] = xx[80] * xx[643] * xx[762] - (xx[782] + xx[776]) - xx[747];
17608 xx[784] = - xx[671];
17609 xx[785] = - xx[742];
17610 xx[786] = xx[784];
17611 xx[787] = xx[741];
17612 xx[788] = xx[785];
17613 xx[789] = xx[80] * xx[763] * xx[660];
17614 xx[763] = xx[781] + xx[80] * xx[660] * xx[762] - xx[789] + xx[746];
17615 xx[762] = xx[763] * xx[742];
17616 xx[889] = xx[783] * xx[742];
17617 xx[890] = xx[763] * xx[671] + xx[741] * xx[783];
17618 xx[891] = xx[762];
17619 xx[892] = - xx[889];
17620 xx[893] = - xx[890];
17621 pm_math_cross3(xx + 786, xx + 891, xx + 894);
17622 xx[897] = - (xx[637] + xx[718]);
17623 xx[898] = xx[680];
17624 xx[899] = xx[687];
17625 xx[900] = xx[707];
17626 pm_math_quatCompose(xx + 897, xx + 777, xx + 901);
17627 pm_math_quatXform(xx + 901, xx + 280, xx + 786);
17628 pm_math_quatXform(xx + 777, xx + 167, xx + 280);
17629 pm_math_quatXform(xx + 897, xx + 280, xx + 167);
17630 pm_math_quatXform(xx + 901, xx + 297, xx + 280);
17631 pm_math_quatXform(xx + 777, xx + 176, xx + 297);
17632 pm_math_quatXform(xx + 897, xx + 297, xx + 176);
17633 xx[297] = xx[102] * xx[904];
17634 xx[298] = xx[102] * xx[902] + xx[123] * xx[903];
17635 xx[891] = - xx[297];
17636 xx[892] = - (xx[123] * xx[904]);
17637 xx[893] = xx[298];
17638 pm_math_cross3(xx + 902, xx + 891, xx + 905);
17639 xx[891] = xx[744];
17640 xx[892] = xx[752];
17641 xx[893] = xx[761];
17642 xx[299] = xx[117] * xx[753];
17643 xx[637] = xx[119] * xx[753];
17644 xx[680] = xx[117] * xx[743] + xx[745] * xx[119];
17645 xx[908] = xx[299];
17646 xx[909] = xx[637];
17647 xx[910] = - xx[680];
17648 pm_math_cross3(xx + 891, xx + 908, xx + 911);
17649 xx[891] = xx[80] * (xx[911] + xx[299] * xx[720]) - xx[119];
17650 xx[892] = xx[117] + (xx[637] * xx[720] + xx[912]) * xx[80];
17651 xx[893] = (xx[913] - xx[680] * xx[720]) * xx[80];
17652 pm_math_quatXform(xx + 897, xx + 891, xx + 908);
17653 xx[299] = xx[2] * xx[843];
17654 xx[2] = cos(xx[299]);
17655 xx[637] = sin(xx[299]);
17656 xx[299] = xx[2] * xx[75] + xx[637] * xx[51];
17657 xx[680] = xx[65] * xx[2] - xx[637] * xx[66];
17658 xx[687] = xx[2] * xx[66] + xx[65] * xx[637];
17659 xx[65] = xx[2] * xx[51] - xx[637] * xx[75];
17660 xx[897] = xx[299];
17661 xx[898] = xx[680];
17662 xx[899] = xx[687];
17663 xx[900] = xx[65];
17664 pm_math_quatCompose(xx + 68, xx + 897, xx + 911);
17665 pm_math_quatCompose(xx + 42, xx + 911, xx + 915);
17666 pm_math_quatCompose(xx + 31, xx + 915, xx + 919);
17667 xx[31] = xx[80] * (xx[916] * xx[918] - xx[915] * xx[917]);
17668 xx[32] = (xx[915] * xx[916] + xx[917] * xx[918]) * xx[80];
17669 xx[33] = xx[22] - (xx[916] * xx[916] + xx[917] * xx[917]) * xx[80];
17670 pm_math_cross3(xx + 31, xx + 84, xx + 891);
17671 pm_math_quatXform(xx + 919, xx + 891, xx + 31);
17672 xx[34] = xx[54] * xx[637];
17673 xx[51] = xx[34] * xx[637];
17674 xx[66] = xx[738] * xx[637];
17675 xx[75] = xx[2] * xx[66];
17676 xx[707] = xx[20] - (xx[80] * (xx[51] - xx[75]) - xx[54]);
17677 xx[20] = xx[2] * xx[34];
17678 xx[34] = xx[66] * xx[637];
17679 xx[66] = (xx[20] + xx[34]) * xx[80] - xx[738];
17680 xx[891] = xx[707];
17681 xx[892] = - xx[66];
17682 xx[893] = xx[791];
17683 pm_math_quatXform(xx + 140, xx + 891, xx + 919);
17684 xx[718] = xx[919] - xx[104];
17685 xx[104] = xx[920] + xx[96];
17686 xx[96] = xx[921] - xx[107];
17687 xx[891] = xx[718];
17688 xx[892] = xx[104];
17689 xx[893] = xx[96];
17690 pm_math_quatXform(xx + 68, xx + 891, xx + 919);
17691 xx[107] = xx[919] + xx[105];
17692 xx[105] = xx[920] + xx[118];
17693 xx[118] = xx[921] + xx[121];
17694 xx[919] = xx[107];
17695 xx[920] = xx[105];
17696 xx[921] = xx[118];
17697 pm_math_quatXform(xx + 42, xx + 919, xx + 922);
17698 xx[121] = xx[923] + xx[148];
17699 xx[148] = xx[922] + xx[147];
17700 xx[147] = xx[121] * xx[19] - xx[148] * xx[15];
17701 xx[744] = xx[80] * xx[19] * xx[147] - (xx[121] - xx[145]) - xx[135];
17702 xx[752] = xx[148] + xx[80] * xx[15] * xx[147] + xx[152] - xx[131];
17703 xx[147] = xx[26] * xx[752];
17704 xx[761] = xx[26] * xx[744];
17705 xx[791] = xx[6] * xx[752] - xx[744] * xx[14];
17706 xx[922] = - xx[147];
17707 xx[923] = xx[761];
17708 xx[924] = xx[791];
17709 pm_math_cross3(xx + 149, xx + 922, xx + 925);
17710 pm_math_quatCompose(xx + 170, xx + 911, xx + 928);
17711 xx[149] = xx[4] * xx[914];
17712 xx[150] = xx[4] * xx[912] + xx[913];
17713 xx[922] = xx[149];
17714 xx[923] = xx[914];
17715 xx[924] = - xx[150];
17716 pm_math_cross3(xx + 912, xx + 922, xx + 932);
17717 xx[151] = xx[911] * xx[914];
17718 xx[922] = xx[22] + (xx[932] - xx[911] * xx[149]) * xx[80];
17719 xx[923] = xx[80] * (xx[933] - xx[151]) - xx[4];
17720 xx[924] = xx[80] * (xx[934] + xx[911] * xx[150]);
17721 pm_math_cross3(xx + 922, xx + 84, xx + 932);
17722 pm_math_quatXform(xx + 928, xx + 932, xx + 922);
17723 xx[150] = - (xx[118] * xx[4]);
17724 xx[932] = xx[150];
17725 xx[933] = - xx[118];
17726 xx[934] = xx[105] + xx[107] * xx[4];
17727 pm_math_quatXform(xx + 42, xx + 932, xx + 935);
17728 xx[932] = xx[935] + xx[183];
17729 xx[933] = xx[936] + xx[184];
17730 xx[934] = xx[937] + xx[185];
17731 pm_math_quatXform(xx + 161, xx + 932, xx + 183);
17732 xx[902] = xx[912] - xx[4] * xx[913];
17733 xx[932] = - xx[914];
17734 xx[933] = xx[149];
17735 xx[934] = xx[902];
17736 pm_math_cross3(xx + 912, xx + 932, xx + 935);
17737 xx[932] = xx[4] + (xx[151] + xx[935]) * xx[80];
17738 xx[933] = xx[22] + xx[80] * (xx[936] - xx[4] * xx[151]);
17739 xx[934] = xx[80] * (xx[937] - xx[911] * xx[902]);
17740 pm_math_cross3(xx + 932, xx + 84, xx + 935);
17741 pm_math_quatXform(xx + 928, xx + 935, xx + 932);
17742 xx[935] = xx[118];
17743 xx[936] = xx[150];
17744 xx[937] = xx[105] * xx[4] - xx[107];
17745 pm_math_quatXform(xx + 42, xx + 935, xx + 149);
17746 xx[935] = xx[149] + xx[197];
17747 xx[936] = xx[150] + xx[198];
17748 xx[937] = xx[151] + xx[199];
17749 pm_math_quatXform(xx + 161, xx + 935, xx + 149);
17750 xx[197] = xx[80] * (xx[912] * xx[914] - xx[911] * xx[913]);
17751 xx[198] = (xx[911] * xx[912] + xx[913] * xx[914]) * xx[80];
17752 xx[199] = xx[22] - (xx[912] * xx[912] + xx[913] * xx[913]) * xx[80];
17753 pm_math_cross3(xx + 197, xx + 84, xx + 935);
17754 pm_math_quatXform(xx + 928, xx + 935, xx + 197);
17755 xx[4] = xx[107] * xx[38];
17756 xx[118] = xx[105] * xx[38];
17757 xx[38] = xx[107] * xx[29] + xx[36] * xx[105];
17758 xx[928] = xx[4];
17759 xx[929] = xx[118];
17760 xx[930] = - xx[38];
17761 pm_math_cross3(xx + 179, xx + 928, xx + 935);
17762 xx[179] = xx[80] * (xx[935] + xx[4] * xx[28]) + xx[37] - xx[105] - xx[119];
17763 xx[180] = xx[107] + xx[80] * (xx[936] + xx[118] * xx[28]) + xx[23] + xx[117];
17764 xx[181] = (xx[937] - xx[28] * xx[38]) * xx[80] + xx[27];
17765 pm_math_quatXform(xx + 161, xx + 179, xx + 27);
17766 pm_math_quatCompose(xx + 212, xx + 897, xx + 161);
17767 xx[4] = xx[687] * xx[687];
17768 xx[23] = xx[65] * xx[65];
17769 xx[36] = xx[687] * xx[680];
17770 xx[37] = xx[299] * xx[65];
17771 xx[38] = xx[687] * xx[299];
17772 xx[105] = xx[680] * xx[65];
17773 xx[117] = xx[22] - (xx[4] + xx[23]) * xx[80];
17774 xx[118] = xx[80] * (xx[36] - xx[37]);
17775 xx[119] = (xx[38] + xx[105]) * xx[80];
17776 pm_math_cross3(xx + 117, xx + 84, xx + 179);
17777 pm_math_quatXform(xx + 161, xx + 179, xx + 117);
17778 xx[107] = xx[48] * xx[104];
17779 xx[179] = xx[50] * xx[96];
17780 xx[180] = xx[107] + xx[179];
17781 xx[181] = xx[104] * xx[47];
17782 xx[902] = xx[96] * xx[47];
17783 xx[928] = - xx[180];
17784 xx[929] = - xx[181];
17785 xx[930] = - xx[902];
17786 pm_math_cross3(xx + 220, xx + 928, xx + 935);
17787 xx[928] = xx[80] * (xx[935] - xx[180] * xx[46]) + xx[195];
17788 xx[929] = xx[80] * (xx[936] - xx[181] * xx[46]) + xx[182] - xx[96] - xx[74];
17789 xx[930] = xx[104] + xx[80] * (xx[937] - xx[902] * xx[46]) + xx[192] - xx[73];
17790 pm_math_quatXform(xx + 170, xx + 928, xx + 180);
17791 xx[192] = xx[680] * xx[680];
17792 xx[195] = xx[687] * xx[65];
17793 xx[65] = xx[299] * xx[680];
17794 xx[928] = (xx[37] + xx[36]) * xx[80];
17795 xx[929] = xx[22] - (xx[23] + xx[192]) * xx[80];
17796 xx[930] = xx[80] * (xx[195] - xx[65]);
17797 pm_math_cross3(xx + 928, xx + 84, xx + 935);
17798 pm_math_quatXform(xx + 161, xx + 935, xx + 928);
17799 xx[23] = xx[48] * xx[718];
17800 xx[36] = xx[718] * xx[47];
17801 xx[37] = xx[36] - xx[179];
17802 xx[47] = xx[48] * xx[96];
17803 xx[935] = xx[23];
17804 xx[936] = xx[37];
17805 xx[937] = xx[47];
17806 pm_math_cross3(xx + 220, xx + 935, xx + 938);
17807 xx[935] = xx[96] + (xx[23] * xx[46] + xx[938]) * xx[80] + xx[175] + xx[74];
17808 xx[936] = (xx[46] * xx[37] + xx[939]) * xx[80] + xx[53];
17809 xx[937] = (xx[47] * xx[46] + xx[940]) * xx[80] + xx[64] - xx[718] - xx[72];
17810 pm_math_quatXform(xx + 170, xx + 935, xx + 938);
17811 xx[935] = xx[80] * (xx[105] - xx[38]);
17812 xx[936] = (xx[65] + xx[195]) * xx[80];
17813 xx[937] = xx[22] - (xx[192] + xx[4]) * xx[80];
17814 pm_math_cross3(xx + 935, xx + 84, xx + 941);
17815 pm_math_quatXform(xx + 161, xx + 941, xx + 935);
17816 xx[4] = xx[50] * xx[718];
17817 xx[22] = xx[50] * xx[104];
17818 xx[23] = xx[36] - xx[107];
17819 xx[36] = xx[4];
17820 xx[37] = xx[22];
17821 xx[38] = xx[23];
17822 pm_math_cross3(xx + 220, xx + 36, xx + 161);
17823 xx[36] = (xx[4] * xx[46] + xx[161]) * xx[80] + xx[41] - xx[104] + xx[73];
17824 xx[37] = xx[718] + (xx[22] * xx[46] + xx[162]) * xx[80] + xx[17] + xx[72];
17825 xx[38] = (xx[46] * xx[23] + xx[163]) * xx[80] + xx[35];
17826 pm_math_quatXform(xx + 170, xx + 36, xx + 46);
17827 xx[4] = xx[2] * xx[216] + xx[219] * xx[637];
17828 xx[17] = xx[2] * xx[217] - xx[218] * xx[637];
17829 xx[22] = xx[2] * xx[218] + xx[217] * xx[637];
17830 xx[23] = xx[2] * xx[219] - xx[216] * xx[637];
17831 xx[35] = xx[4];
17832 xx[36] = xx[17];
17833 xx[37] = xx[22];
17834 xx[38] = xx[23];
17835 xx[41] = xx[57] * xx[637];
17836 xx[50] = xx[80] * xx[2] * xx[41];
17837 xx[53] = xx[80] * xx[41] * xx[637] - xx[57];
17838 xx[161] = xx[74] * xx[50] + xx[55];
17839 xx[162] = xx[106] + xx[74] * xx[53];
17840 xx[163] = xx[73] * xx[53] - xx[72] * xx[50];
17841 pm_math_quatXform(xx + 35, xx + 161, xx + 104);
17842 xx[35] = - (xx[63] * xx[66]);
17843 xx[36] = - (xx[63] * xx[707] + xx[30]);
17844 xx[37] = xx[57] * xx[66];
17845 pm_math_quatXform(xx + 140, xx + 35, xx + 161);
17846 xx[35] = xx[161] + xx[60];
17847 xx[36] = xx[162] + xx[61] - xx[67];
17848 xx[37] = xx[163] - xx[40];
17849 pm_math_quatXform(xx + 212, xx + 35, xx + 161);
17850 xx[35] = xx[17];
17851 xx[36] = xx[22];
17852 xx[37] = xx[23];
17853 xx[30] = xx[72] * xx[23];
17854 xx[38] = xx[73] * xx[23];
17855 xx[23] = xx[72] * xx[17] - xx[22] * xx[73];
17856 xx[170] = - xx[30];
17857 xx[171] = xx[38];
17858 xx[172] = xx[23];
17859 pm_math_cross3(xx + 35, xx + 170, xx + 212);
17860 xx[17] = xx[738] - xx[80] * (xx[20] + xx[34]);
17861 xx[20] = xx[54] + (xx[75] - xx[51]) * xx[80];
17862 xx[22] = xx[219] * xx[20];
17863 xx[34] = xx[17] * xx[219];
17864 xx[35] = xx[217] * xx[20] + xx[17] * xx[218];
17865 xx[53] = xx[22];
17866 xx[54] = xx[34];
17867 xx[55] = - xx[35];
17868 pm_math_cross3(xx + 217, xx + 53, xx + 170);
17869 xx[941] = xx[0];
17870 xx[942] = xx[0];
17871 xx[943] = xx[0];
17872 xx[944] = xx[0];
17873 xx[945] = xx[81] + xx[146] + xx[80] * (xx[158] - xx[129] * xx[24]);
17874 xx[946] = xx[155] + xx[186];
17875 xx[947] = xx[189] + xx[200];
17876 xx[948] = xx[203] + xx[209];
17877 xx[949] = xx[206] + xx[226];
17878 xx[950] = xx[223] + xx[232];
17879 xx[951] = xx[229] + xx[235];
17880 xx[952] = xx[251] + xx[247];
17881 xx[953] = xx[80] * (xx[263] - xx[3] * xx[49]) + xx[8] + xx[80] * (xx[258] -
17882 xx[216] * xx[77]) + xx[73];
17883 xx[954] = xx[0];
17884 xx[955] = xx[0];
17885 xx[956] = xx[0];
17886 xx[957] = xx[0];
17887 xx[958] = xx[0];
17888 xx[959] = xx[0];
17889 xx[960] = xx[0];
17890 xx[961] = xx[0];
17891 xx[962] = - (xx[239] + xx[279] + xx[80] * (xx[294] + xx[165] * xx[242]));
17892 xx[963] = - (xx[285] + xx[308]);
17893 xx[964] = - (xx[291] + xx[318]);
17894 xx[965] = - (xx[80] * (xx[321] - xx[304] * xx[87]) + xx[328] - xx[123]);
17895 xx[966] = xx[0];
17896 xx[967] = xx[0];
17897 xx[968] = xx[0];
17898 xx[969] = xx[0];
17899 xx[970] = xx[0];
17900 xx[971] = xx[0];
17901 xx[972] = xx[0];
17902 xx[973] = xx[0];
17903 xx[974] = xx[0];
17904 xx[975] = xx[0];
17905 xx[976] = xx[0];
17906 xx[977] = xx[0];
17907 xx[978] = xx[82] + xx[144] + (xx[153] * xx[24] + xx[159]) * xx[80];
17908 xx[979] = xx[156] + xx[187];
17909 xx[980] = xx[190] + xx[201];
17910 xx[981] = xx[204] + xx[210];
17911 xx[982] = xx[207] + xx[227];
17912 xx[983] = xx[224] + xx[233];
17913 xx[984] = xx[230] + xx[236];
17914 xx[985] = xx[252] + xx[248];
17915 xx[986] = (xx[3] * xx[111] + xx[264]) * xx[80] + xx[11] + (xx[216] * xx[78] +
17916 xx[259]) * xx[80] + xx[72];
17917 xx[987] = xx[0];
17918 xx[988] = xx[0];
17919 xx[989] = xx[0];
17920 xx[990] = xx[0];
17921 xx[991] = xx[0];
17922 xx[992] = xx[0];
17923 xx[993] = xx[0];
17924 xx[994] = xx[0];
17925 xx[995] = - (xx[240] + xx[277] + (xx[295] - xx[165] * xx[289]) * xx[80]);
17926 xx[996] = - (xx[286] + xx[309]);
17927 xx[997] = - (xx[292] + xx[319]);
17928 xx[998] = - ((xx[322] - xx[123] * xx[304] * xx[307]) * xx[80] + xx[329] + xx
17929 [102]);
17930 xx[999] = xx[0];
17931 xx[1000] = xx[0];
17932 xx[1001] = xx[0];
17933 xx[1002] = xx[0];
17934 xx[1003] = xx[0];
17935 xx[1004] = xx[0];
17936 xx[1005] = xx[0];
17937 xx[1006] = xx[0];
17938 xx[1007] = xx[0];
17939 xx[1008] = xx[0];
17940 xx[1009] = xx[0];
17941 xx[1010] = xx[0];
17942 xx[1011] = xx[83] + (xx[24] * xx[154] + xx[160]) * xx[80];
17943 xx[1012] = xx[157] + xx[188];
17944 xx[1013] = xx[191] + xx[202];
17945 xx[1014] = xx[205] + xx[211];
17946 xx[1015] = xx[208] + xx[228];
17947 xx[1016] = xx[225] + xx[234];
17948 xx[1017] = xx[231] + xx[237];
17949 xx[1018] = xx[253] + xx[249];
17950 xx[1019] = (xx[3] * xx[18] + xx[265]) * xx[80] + (xx[216] * xx[79] + xx[260]) *
17951 xx[80];
17952 xx[1020] = xx[0];
17953 xx[1021] = xx[0];
17954 xx[1022] = xx[0];
17955 xx[1023] = xx[0];
17956 xx[1024] = xx[0];
17957 xx[1025] = xx[0];
17958 xx[1026] = xx[0];
17959 xx[1027] = xx[0];
17960 xx[1028] = - (xx[241] + (xx[296] - xx[165] * xx[290]) * xx[80]);
17961 xx[1029] = - (xx[287] + xx[310]);
17962 xx[1030] = - (xx[293] + xx[320]);
17963 xx[1031] = - ((xx[304] * xx[115] + xx[323]) * xx[80] + xx[330]);
17964 xx[1032] = xx[0];
17965 xx[1033] = xx[0];
17966 xx[1034] = xx[0];
17967 xx[1035] = xx[0];
17968 xx[1036] = xx[0];
17969 xx[1037] = xx[0];
17970 xx[1038] = xx[0];
17971 xx[1039] = xx[0];
17972 xx[1040] = xx[0];
17973 xx[1041] = xx[0];
17974 xx[1042] = xx[0];
17975 xx[1043] = xx[0];
17976 xx[1044] = xx[315] + xx[350] + xx[80] * (xx[357] - xx[348] * xx[24]);
17977 xx[1045] = xx[364] + xx[370];
17978 xx[1046] = xx[373] + xx[354];
17979 xx[1047] = xx[367] + xx[360];
17980 xx[1048] = xx[384] + xx[388];
17981 xx[1049] = xx[394] + xx[405];
17982 xx[1050] = xx[402] + xx[380];
17983 xx[1051] = xx[376] + xx[415];
17984 xx[1052] = xx[0];
17985 xx[1053] = xx[80] * (xx[418] + xx[411] * xx[120]) + xx[421] - xx[73];
17986 xx[1054] = xx[0];
17987 xx[1055] = xx[0];
17988 xx[1056] = xx[0];
17989 xx[1057] = - (xx[424] + xx[427] + xx[80] * (xx[447] - xx[408] * xx[5]));
17990 xx[1058] = - (xx[434] + xx[464]);
17991 xx[1059] = - (xx[459] + xx[470]);
17992 xx[1060] = - (xx[80] * (xx[474] - xx[450] * xx[1]) + xx[477] - xx[123]);
17993 xx[1061] = xx[0];
17994 xx[1062] = xx[0];
17995 xx[1063] = xx[0];
17996 xx[1064] = xx[0];
17997 xx[1065] = xx[0];
17998 xx[1066] = xx[0];
17999 xx[1067] = xx[0];
18000 xx[1068] = xx[0];
18001 xx[1069] = xx[0];
18002 xx[1070] = xx[0];
18003 xx[1071] = xx[0];
18004 xx[1072] = xx[0];
18005 xx[1073] = xx[0];
18006 xx[1074] = xx[0];
18007 xx[1075] = xx[0];
18008 xx[1076] = xx[0];
18009 xx[1077] = xx[316] + xx[351] + (xx[352] * xx[24] + xx[358]) * xx[80];
18010 xx[1078] = xx[365] + xx[371];
18011 xx[1079] = xx[374] + xx[355];
18012 xx[1080] = xx[368] + xx[361];
18013 xx[1081] = xx[385] + xx[389];
18014 xx[1082] = xx[395] + xx[406];
18015 xx[1083] = xx[403] + xx[381];
18016 xx[1084] = xx[377] + xx[416];
18017 xx[1085] = xx[0];
18018 xx[1086] = (xx[419] - xx[73] * xx[411] * xx[414]) * xx[80] + xx[422] - xx[72];
18019 xx[1087] = xx[0];
18020 xx[1088] = xx[0];
18021 xx[1089] = xx[0];
18022 xx[1090] = - (xx[425] + xx[412] + (xx[438] * xx[5] + xx[448]) * xx[80]);
18023 xx[1091] = - (xx[435] + xx[465]);
18024 xx[1092] = - (xx[460] + xx[471]);
18025 xx[1093] = - ((xx[475] - xx[123] * xx[450] * xx[453]) * xx[80] + xx[478] + xx
18026 [102]);
18027 xx[1094] = xx[0];
18028 xx[1095] = xx[0];
18029 xx[1096] = xx[0];
18030 xx[1097] = xx[0];
18031 xx[1098] = xx[0];
18032 xx[1099] = xx[0];
18033 xx[1100] = xx[0];
18034 xx[1101] = xx[0];
18035 xx[1102] = xx[0];
18036 xx[1103] = xx[0];
18037 xx[1104] = xx[0];
18038 xx[1105] = xx[0];
18039 xx[1106] = xx[0];
18040 xx[1107] = xx[0];
18041 xx[1108] = xx[0];
18042 xx[1109] = xx[0];
18043 xx[1110] = xx[317] + (xx[24] * xx[353] + xx[359]) * xx[80];
18044 xx[1111] = xx[366] + xx[372];
18045 xx[1112] = xx[375] + xx[356];
18046 xx[1113] = xx[369] + xx[362];
18047 xx[1114] = xx[386] + xx[390];
18048 xx[1115] = xx[396] + xx[407];
18049 xx[1116] = xx[404] + xx[382];
18050 xx[1117] = xx[378] + xx[417];
18051 xx[1118] = xx[0];
18052 xx[1119] = (xx[411] * xx[166] + xx[420]) * xx[80] + xx[423];
18053 xx[1120] = xx[0];
18054 xx[1121] = xx[0];
18055 xx[1122] = xx[0];
18056 xx[1123] = - (xx[426] + (xx[5] * xx[439] + xx[449]) * xx[80]);
18057 xx[1124] = - (xx[436] + xx[466]);
18058 xx[1125] = - (xx[461] + xx[472]);
18059 xx[1126] = - ((xx[450] * xx[12] + xx[476]) * xx[80] + xx[479]);
18060 xx[1127] = xx[0];
18061 xx[1128] = xx[0];
18062 xx[1129] = xx[0];
18063 xx[1130] = xx[0];
18064 xx[1131] = xx[0];
18065 xx[1132] = xx[0];
18066 xx[1133] = xx[0];
18067 xx[1134] = xx[0];
18068 xx[1135] = xx[0];
18069 xx[1136] = xx[0];
18070 xx[1137] = xx[0];
18071 xx[1138] = xx[0];
18072 xx[1139] = xx[0];
18073 xx[1140] = xx[0];
18074 xx[1141] = xx[0];
18075 xx[1142] = xx[0];
18076 xx[1143] = xx[467] + xx[499] + xx[80] * (xx[507] - xx[497] * xx[24]);
18077 xx[1144] = xx[514] + xx[520];
18078 xx[1145] = xx[523] + xx[503];
18079 xx[1146] = xx[517] + xx[510];
18080 xx[1147] = xx[536] + xx[539];
18081 xx[1148] = xx[549] + xx[555];
18082 xx[1149] = xx[552] + xx[529];
18083 xx[1150] = xx[526] + xx[561];
18084 xx[1151] = xx[0];
18085 xx[1152] = xx[0];
18086 xx[1153] = xx[80] * (xx[564] - xx[542] * xx[363]) + xx[567] + xx[73];
18087 xx[1154] = xx[0];
18088 xx[1155] = xx[0];
18089 xx[1156] = xx[0];
18090 xx[1157] = xx[0];
18091 xx[1158] = xx[0];
18092 xx[1159] = xx[0];
18093 xx[1160] = xx[0];
18094 xx[1161] = xx[0];
18095 xx[1162] = xx[0];
18096 xx[1163] = xx[0];
18097 xx[1164] = - (xx[570] + xx[583] + xx[80] * (xx[598] + xx[451] * xx[573]));
18098 xx[1165] = - (xx[586] + xx[606]);
18099 xx[1166] = - (xx[592] + xx[617]);
18100 xx[1167] = - (xx[80] * (xx[620] - xx[610] * xx[445]) + xx[623] - xx[123]);
18101 xx[1168] = xx[0];
18102 xx[1169] = xx[0];
18103 xx[1170] = xx[0];
18104 xx[1171] = xx[0];
18105 xx[1172] = xx[0];
18106 xx[1173] = xx[0];
18107 xx[1174] = xx[0];
18108 xx[1175] = xx[0];
18109 xx[1176] = xx[468] + xx[500] + (xx[501] * xx[24] + xx[508]) * xx[80];
18110 xx[1177] = xx[515] + xx[521];
18111 xx[1178] = xx[524] + xx[504];
18112 xx[1179] = xx[518] + xx[511];
18113 xx[1180] = xx[537] + xx[540];
18114 xx[1181] = xx[550] + xx[556];
18115 xx[1182] = xx[553] + xx[530];
18116 xx[1183] = xx[527] + xx[562];
18117 xx[1184] = xx[0];
18118 xx[1185] = xx[0];
18119 xx[1186] = (xx[73] * xx[542] * xx[545] + xx[565]) * xx[80] + xx[568] + xx[72];
18120 xx[1187] = xx[0];
18121 xx[1188] = xx[0];
18122 xx[1189] = xx[0];
18123 xx[1190] = xx[0];
18124 xx[1191] = xx[0];
18125 xx[1192] = xx[0];
18126 xx[1193] = xx[0];
18127 xx[1194] = xx[0];
18128 xx[1195] = xx[0];
18129 xx[1196] = xx[0];
18130 xx[1197] = - (xx[571] + xx[581] + (xx[599] - xx[451] * xx[590]) * xx[80]);
18131 xx[1198] = - (xx[587] + xx[607]);
18132 xx[1199] = - (xx[593] + xx[618]);
18133 xx[1200] = - ((xx[621] - xx[123] * xx[610] * xx[613]) * xx[80] + xx[624] + xx
18134 [102]);
18135 xx[1201] = xx[0];
18136 xx[1202] = xx[0];
18137 xx[1203] = xx[0];
18138 xx[1204] = xx[0];
18139 xx[1205] = xx[0];
18140 xx[1206] = xx[0];
18141 xx[1207] = xx[0];
18142 xx[1208] = xx[0];
18143 xx[1209] = xx[469] + (xx[24] * xx[502] + xx[509]) * xx[80];
18144 xx[1210] = xx[516] + xx[522];
18145 xx[1211] = xx[525] + xx[505];
18146 xx[1212] = xx[519] + xx[512];
18147 xx[1213] = xx[538] + xx[541];
18148 xx[1214] = xx[551] + xx[557];
18149 xx[1215] = xx[554] + xx[531];
18150 xx[1216] = xx[528] + xx[563];
18151 xx[1217] = xx[0];
18152 xx[1218] = xx[0];
18153 xx[1219] = (xx[542] * xx[392] + xx[566]) * xx[80] + xx[569];
18154 xx[1220] = xx[0];
18155 xx[1221] = xx[0];
18156 xx[1222] = xx[0];
18157 xx[1223] = xx[0];
18158 xx[1224] = xx[0];
18159 xx[1225] = xx[0];
18160 xx[1226] = xx[0];
18161 xx[1227] = xx[0];
18162 xx[1228] = xx[0];
18163 xx[1229] = xx[0];
18164 xx[1230] = - (xx[572] + (xx[451] * xx[591] + xx[600]) * xx[80]);
18165 xx[1231] = - (xx[588] + xx[608]);
18166 xx[1232] = - (xx[594] + xx[619]);
18167 xx[1233] = - ((xx[610] * xx[462] + xx[622]) * xx[80] + xx[625]);
18168 xx[1234] = xx[0];
18169 xx[1235] = xx[0];
18170 xx[1236] = xx[0];
18171 xx[1237] = xx[0];
18172 xx[1238] = xx[0];
18173 xx[1239] = xx[0];
18174 xx[1240] = xx[0];
18175 xx[1241] = xx[0];
18176 xx[1242] = xx[614] + xx[647] + xx[80] * (xx[654] - xx[642] * xx[24]);
18177 xx[1243] = xx[661] + xx[667];
18178 xx[1244] = xx[673] + xx[651];
18179 xx[1245] = xx[664] + xx[657];
18180 xx[1246] = xx[681] + xx[688];
18181 xx[1247] = xx[694] + xx[700];
18182 xx[1248] = xx[697] + xx[691];
18183 xx[1249] = xx[703] + xx[709];
18184 xx[1250] = xx[0];
18185 xx[1251] = xx[0];
18186 xx[1252] = xx[0];
18187 xx[1253] = xx[80] * (xx[712] - xx[676] * xx[533]) + xx[715] + xx[73];
18188 xx[1254] = xx[0];
18189 xx[1255] = xx[0];
18190 xx[1256] = xx[0];
18191 xx[1257] = xx[0];
18192 xx[1258] = xx[0];
18193 xx[1259] = xx[0];
18194 xx[1260] = xx[0];
18195 xx[1261] = xx[0];
18196 xx[1262] = xx[0];
18197 xx[1263] = xx[0];
18198 xx[1264] = xx[0];
18199 xx[1265] = xx[0];
18200 xx[1266] = xx[0];
18201 xx[1267] = - (xx[721] + xx[732] + xx[80] * (xx[748] - xx[604] * xx[719]));
18202 xx[1268] = - (xx[734] + xx[758]);
18203 xx[1269] = - (xx[755] + xx[764]);
18204 xx[1270] = - (xx[80] * (xx[767] - xx[751] * xx[584]) + xx[770] - xx[123]);
18205 xx[1271] = xx[0];
18206 xx[1272] = xx[0];
18207 xx[1273] = xx[0];
18208 xx[1274] = xx[0];
18209 xx[1275] = xx[615] + xx[648] + (xx[649] * xx[24] + xx[655]) * xx[80];
18210 xx[1276] = xx[662] + xx[668];
18211 xx[1277] = xx[674] + xx[652];
18212 xx[1278] = xx[665] + xx[658];
18213 xx[1279] = xx[682] + xx[689];
18214 xx[1280] = xx[695] + xx[701];
18215 xx[1281] = xx[698] + xx[692];
18216 xx[1282] = xx[704] + xx[710];
18217 xx[1283] = xx[0];
18218 xx[1284] = xx[0];
18219 xx[1285] = xx[0];
18220 xx[1286] = (xx[73] * xx[676] * xx[679] + xx[713]) * xx[80] + xx[716] + xx[72];
18221 xx[1287] = xx[0];
18222 xx[1288] = xx[0];
18223 xx[1289] = xx[0];
18224 xx[1290] = xx[0];
18225 xx[1291] = xx[0];
18226 xx[1292] = xx[0];
18227 xx[1293] = xx[0];
18228 xx[1294] = xx[0];
18229 xx[1295] = xx[0];
18230 xx[1296] = xx[0];
18231 xx[1297] = xx[0];
18232 xx[1298] = xx[0];
18233 xx[1299] = xx[0];
18234 xx[1300] = - (xx[722] + xx[724] + (xx[604] * xx[739] + xx[749]) * xx[80]);
18235 xx[1301] = - (xx[735] + xx[759]);
18236 xx[1302] = - (xx[756] + xx[765]);
18237 xx[1303] = - ((xx[768] - xx[123] * xx[751] * xx[754]) * xx[80] + xx[771] + xx
18238 [102]);
18239 xx[1304] = xx[0];
18240 xx[1305] = xx[0];
18241 xx[1306] = xx[0];
18242 xx[1307] = xx[0];
18243 xx[1308] = xx[616] + (xx[24] * xx[650] + xx[656]) * xx[80];
18244 xx[1309] = xx[663] + xx[669];
18245 xx[1310] = xx[675] + xx[653];
18246 xx[1311] = xx[666] + xx[659];
18247 xx[1312] = xx[683] + xx[690];
18248 xx[1313] = xx[696] + xx[702];
18249 xx[1314] = xx[699] + xx[693];
18250 xx[1315] = xx[705] + xx[711];
18251 xx[1316] = xx[0];
18252 xx[1317] = xx[0];
18253 xx[1318] = xx[0];
18254 xx[1319] = (xx[676] * xx[559] + xx[714]) * xx[80] + xx[717];
18255 xx[1320] = xx[0];
18256 xx[1321] = xx[0];
18257 xx[1322] = xx[0];
18258 xx[1323] = xx[0];
18259 xx[1324] = xx[0];
18260 xx[1325] = xx[0];
18261 xx[1326] = xx[0];
18262 xx[1327] = xx[0];
18263 xx[1328] = xx[0];
18264 xx[1329] = xx[0];
18265 xx[1330] = xx[0];
18266 xx[1331] = xx[0];
18267 xx[1332] = xx[0];
18268 xx[1333] = - (xx[723] + (xx[750] - xx[604] * xx[740]) * xx[80]);
18269 xx[1334] = - (xx[736] + xx[760]);
18270 xx[1335] = - (xx[757] + xx[766]);
18271 xx[1336] = - ((xx[751] * xx[609] + xx[769]) * xx[80] + xx[772]);
18272 xx[1337] = - (xx[773] + xx[783] + xx[80] * (xx[894] + xx[672] * xx[762]));
18273 xx[1338] = - (xx[786] + xx[167]);
18274 xx[1339] = - (xx[280] + xx[176]);
18275 xx[1340] = - (xx[80] * (xx[905] - xx[901] * xx[297]) + xx[908] - xx[123]);
18276 xx[1341] = xx[31] + xx[744] + xx[80] * (xx[925] - xx[147] * xx[24]);
18277 xx[1342] = xx[922] + xx[183];
18278 xx[1343] = xx[932] + xx[149];
18279 xx[1344] = xx[197] + xx[27];
18280 xx[1345] = xx[117] + xx[180];
18281 xx[1346] = xx[928] + xx[938];
18282 xx[1347] = xx[935] + xx[46];
18283 xx[1348] = xx[104] + xx[161];
18284 xx[1349] = xx[0];
18285 xx[1350] = xx[0];
18286 xx[1351] = xx[0];
18287 xx[1352] = xx[0];
18288 xx[1353] = xx[80] * (xx[212] - xx[4] * xx[30]) + xx[17] + xx[80] * (xx[170] +
18289 xx[216] * xx[22]) + xx[73];
18290 xx[1354] = xx[0];
18291 xx[1355] = xx[0];
18292 xx[1356] = xx[0];
18293 xx[1357] = xx[0];
18294 xx[1358] = xx[0];
18295 xx[1359] = xx[0];
18296 xx[1360] = xx[0];
18297 xx[1361] = xx[0];
18298 xx[1362] = xx[0];
18299 xx[1363] = xx[0];
18300 xx[1364] = xx[0];
18301 xx[1365] = xx[0];
18302 xx[1366] = xx[0];
18303 xx[1367] = xx[0];
18304 xx[1368] = xx[0];
18305 xx[1369] = xx[0];
18306 xx[1370] = - (xx[774] + xx[763] + (xx[895] - xx[672] * xx[889]) * xx[80]);
18307 xx[1371] = - (xx[787] + xx[168]);
18308 xx[1372] = - (xx[281] + xx[177]);
18309 xx[1373] = - ((xx[906] - xx[123] * xx[901] * xx[904]) * xx[80] + xx[909] + xx
18310 [102]);
18311 xx[1374] = xx[32] + xx[752] + (xx[761] * xx[24] + xx[926]) * xx[80];
18312 xx[1375] = xx[923] + xx[184];
18313 xx[1376] = xx[933] + xx[150];
18314 xx[1377] = xx[198] + xx[28];
18315 xx[1378] = xx[118] + xx[181];
18316 xx[1379] = xx[929] + xx[939];
18317 xx[1380] = xx[936] + xx[47];
18318 xx[1381] = xx[105] + xx[162];
18319 xx[1382] = xx[0];
18320 xx[1383] = xx[0];
18321 xx[1384] = xx[0];
18322 xx[1385] = xx[0];
18323 xx[1386] = (xx[4] * xx[38] + xx[213]) * xx[80] - xx[20] + (xx[216] * xx[34] +
18324 xx[171]) * xx[80] + xx[72];
18325 xx[1387] = xx[0];
18326 xx[1388] = xx[0];
18327 xx[1389] = xx[0];
18328 xx[1390] = xx[0];
18329 xx[1391] = xx[0];
18330 xx[1392] = xx[0];
18331 xx[1393] = xx[0];
18332 xx[1394] = xx[0];
18333 xx[1395] = xx[0];
18334 xx[1396] = xx[0];
18335 xx[1397] = xx[0];
18336 xx[1398] = xx[0];
18337 xx[1399] = xx[0];
18338 xx[1400] = xx[0];
18339 xx[1401] = xx[0];
18340 xx[1402] = xx[0];
18341 xx[1403] = - (xx[775] + (xx[896] - xx[672] * xx[890]) * xx[80]);
18342 xx[1404] = - (xx[788] + xx[169]);
18343 xx[1405] = - (xx[282] + xx[178]);
18344 xx[1406] = - ((xx[901] * xx[298] + xx[907]) * xx[80] + xx[910]);
18345 xx[1407] = xx[33] + (xx[24] * xx[791] + xx[927]) * xx[80];
18346 xx[1408] = xx[924] + xx[185];
18347 xx[1409] = xx[934] + xx[151];
18348 xx[1410] = xx[199] + xx[29];
18349 xx[1411] = xx[119] + xx[182];
18350 xx[1412] = xx[930] + xx[940];
18351 xx[1413] = xx[937] + xx[48];
18352 xx[1414] = xx[106] + xx[163];
18353 xx[1415] = xx[0];
18354 xx[1416] = xx[0];
18355 xx[1417] = xx[0];
18356 xx[1418] = xx[0];
18357 xx[1419] = (xx[4] * xx[23] + xx[214]) * xx[80] + (xx[172] - xx[216] * xx[35]) *
18358 xx[80];
18359 xx[1420] = xx[0];
18360 xx[1421] = xx[0];
18361 xx[1422] = xx[0];
18362 xx[1423] = xx[0];
18363 xx[1424] = xx[0];
18364 xx[1425] = xx[0];
18365 xx[1426] = xx[0];
18366 xx[1427] = xx[0];
18367 xx[1428] = xx[0];
18368 xx[1429] = xx[0];
18369 xx[1430] = xx[0];
18370 xx[1431] = xx[0];
18371 xx[1432] = xx[0];
18372 xx[1433] = xx[0];
18373 xx[1434] = xx[0];
18374 xx[1435] = xx[0];
18375 xx[27] = xx[165];
18376 xx[28] = xx[283];
18377 xx[29] = xx[174];
18378 xx[30] = xx[284];
18379 xx[0] = xx[250] * xx[122] - xx[89] * xx[245];
18380 xx[1] = xx[122] * xx[256] + xx[89] * xx[244];
18381 xx[3] = xx[122] * xx[244] - xx[89] * xx[256];
18382 xx[4] = xx[250] * xx[89] + xx[122] * xx[245];
18383 xx[31] = xx[0];
18384 xx[32] = - xx[1];
18385 xx[33] = xx[3];
18386 xx[34] = xx[4];
18387 pm_math_quatCompose(xx + 27, xx + 31, xx + 35);
18388 xx[12] = xx[3] * xx[857];
18389 xx[18] = xx[857] * xx[1];
18390 xx[22] = xx[80] * (xx[0] * xx[12] + xx[18] * xx[4]);
18391 xx[23] = xx[250] * xx[859];
18392 xx[31] = xx[859] * xx[245];
18393 xx[32] = xx[21] * xx[864];
18394 xx[33] = xx[21] * xx[865];
18395 xx[34] = xx[864] - (xx[21] * xx[32] - xx[25] * xx[33]) * xx[80];
18396 xx[41] = xx[865] - xx[80] * (xx[25] * xx[32] + xx[21] * xx[33]);
18397 xx[32] = (xx[12] * xx[4] - xx[0] * xx[18]) * xx[80];
18398 xx[0] = (xx[18] * xx[1] + xx[3] * xx[12]) * xx[80] - xx[857];
18399 xx[46] = xx[22] + (xx[23] * xx[244] + xx[31] * xx[256]) * xx[80] + xx[34];
18400 xx[47] = xx[80] * (xx[23] * xx[256] - xx[31] * xx[244]) + xx[41] - xx[32];
18401 xx[48] = xx[0] + xx[859] - (xx[31] * xx[245] + xx[250] * xx[23]) * xx[80] +
18402 xx[866];
18403 pm_math_cross3(xx + 46, xx + 267, xx + 49);
18404 pm_math_quatXform(xx + 35, xx + 49, xx + 46);
18405 xx[1] = xx[10] * xx[90];
18406 xx[3] = xx[10] * xx[193];
18407 xx[4] = xx[80] * xx[857] * (xx[174] * xx[1] - xx[165] * xx[3]);
18408 xx[12] = xx[266] - xx[278];
18409 xx[49] = xx[34];
18410 xx[50] = xx[41];
18411 xx[51] = xx[866];
18412 pm_math_cross3(xx + 49, xx + 126, xx + 53);
18413 pm_math_quatXform(xx + 271, xx + 53, xx + 49);
18414 xx[18] = xx[49] - xx[859] * xx[276];
18415 xx[23] = xx[50] + xx[859] * xx[275];
18416 xx[31] = xx[23] * xx[89] + xx[122] * xx[18];
18417 xx[33] = xx[266] * xx[89] + xx[270] * xx[122];
18418 xx[34] = xx[89] * xx[276] + xx[275] * xx[122];
18419 xx[41] = (xx[276] + xx[80] * xx[33] * xx[89] - xx[80] * xx[34] * xx[89] - xx
18420 [266]) * xx[857];
18421 xx[53] = xx[270] + xx[288];
18422 xx[54] = (xx[275] + xx[80] * xx[33] * xx[122] - xx[80] * xx[34] * xx[122] +
18423 xx[59]) * xx[857];
18424 xx[72] = xx[859] * xx[12] + xx[18] - xx[80] * xx[31] * xx[122] + xx[41];
18425 xx[73] = xx[23] - xx[80] * xx[31] * xx[89] - xx[859] * xx[53] - xx[54];
18426 xx[74] = xx[51] - (xx[89] * xx[89] * xx[51] + xx[51] * xx[122] * xx[122]) *
18427 xx[80];
18428 pm_math_quatXform(xx + 27, xx + 72, xx + 49);
18429 xx[72] = xx[24];
18430 xx[73] = xx[6];
18431 xx[74] = xx[14];
18432 xx[75] = xx[26];
18433 xx[18] = xx[138] * xx[19] - xx[15] * xx[137];
18434 xx[23] = xx[139] * xx[19] - xx[15] * xx[136];
18435 xx[31] = xx[136] * xx[19] + xx[15] * xx[139];
18436 xx[33] = xx[15] * xx[138] + xx[137] * xx[19];
18437 xx[104] = - xx[18];
18438 xx[105] = xx[23];
18439 xx[106] = xx[31];
18440 xx[107] = - xx[33];
18441 pm_math_quatCompose(xx + 72, xx + 104, xx + 117);
18442 xx[34] = xx[31] * xx[816];
18443 xx[55] = xx[816] * xx[23];
18444 xx[59] = xx[80] * (xx[34] * xx[18] - xx[33] * xx[55]);
18445 xx[64] = xx[818] * xx[137];
18446 xx[65] = xx[818] * xx[138];
18447 xx[77] = xx[21] * xx[823];
18448 xx[78] = xx[21] * xx[824];
18449 xx[81] = xx[823] - (xx[21] * xx[77] - xx[25] * xx[78]) * xx[80];
18450 xx[82] = xx[824] - xx[80] * (xx[25] * xx[77] + xx[21] * xx[78]);
18451 xx[83] = xx[825];
18452 pm_math_quatInverseXform(xx + 97, xx + 81, xx + 77);
18453 pm_math_quatInverseXform(xx + 91, xx + 830, xx + 104);
18454 xx[87] = xx[57] * xx[834];
18455 xx[96] = xx[87] * xx[76];
18456 xx[102] = (xx[55] * xx[18] + xx[33] * xx[34]) * xx[80];
18457 xx[18] = xx[816] - (xx[55] * xx[23] + xx[31] * xx[34]) * xx[80];
18458 xx[23] = xx[63] * xx[834];
18459 xx[149] = xx[59] + xx[80] * (xx[139] * xx[64] - xx[136] * xx[65]) + xx[77] +
18460 xx[104] + xx[80] * xx[96] * xx[76] - xx[87];
18461 xx[150] = (xx[136] * xx[64] + xx[139] * xx[65]) * xx[80] + xx[78] + xx[105] -
18462 xx[80] * xx[52] * xx[96] - xx[102];
18463 xx[151] = xx[18] + xx[818] - (xx[137] * xx[64] + xx[138] * xx[65]) * xx[80] +
18464 xx[79] + xx[106] - (xx[23] + xx[836]);
18465 pm_math_cross3(xx + 149, xx + 84, xx + 77);
18466 pm_math_quatXform(xx + 117, xx + 77, xx + 104);
18467 xx[31] = xx[6] * xx[10];
18468 xx[33] = xx[26] * xx[10];
18469 xx[34] = xx[80] * xx[816] * (xx[31] * xx[14] - xx[33] * xx[24]);
18470 xx[55] = xx[145] - xx[135];
18471 xx[64] = xx[818] * xx[55];
18472 pm_math_cross3(xx + 81, xx + 126, xx + 77);
18473 pm_math_quatXform(xx + 42, xx + 77, xx + 144);
18474 pm_math_cross3(xx + 830, xx + 112, xx + 77);
18475 pm_math_quatXform(xx + 68, xx + 77, xx + 149);
18476 xx[65] = xx[80] * xx[834] * xx[58];
18477 xx[77] = xx[8] * xx[836] - xx[23] * xx[88];
18478 xx[78] = xx[836] * xx[11] + xx[23] * xx[101] - xx[95] * xx[87];
18479 xx[79] = xx[87] * xx[88];
18480 pm_math_quatXform(xx + 140, xx + 77, xx + 153);
18481 pm_math_cross3(xx + 830, xx + 108, xx + 77);
18482 xx[58] = xx[61] - xx[67];
18483 xx[61] = xx[834] * xx[58];
18484 xx[67] = xx[80] * xx[103] * xx[834];
18485 xx[156] = xx[65] + xx[153] + xx[77];
18486 xx[157] = xx[61] + xx[154] + xx[78];
18487 xx[158] = xx[155] - xx[67] + xx[79];
18488 pm_math_quatXform(xx + 68, xx + 156, xx + 77);
18489 pm_math_cross3(xx + 81, xx + 132, xx + 153);
18490 xx[156] = xx[149] + xx[77] + xx[153];
18491 xx[157] = xx[150] + xx[78] + xx[154];
18492 xx[158] = xx[151] + xx[79] + xx[155];
18493 pm_math_quatXform(xx + 42, xx + 156, xx + 77);
18494 xx[96] = xx[144] + xx[77] - xx[124] * xx[818];
18495 xx[103] = xx[145] + xx[78] + xx[125] * xx[818];
18496 xx[107] = xx[103] * xx[15] + xx[19] * xx[96];
18497 xx[111] = xx[124] * xx[15] + xx[125] * xx[19];
18498 xx[115] = xx[131] * xx[19] - xx[135] * xx[15];
18499 xx[123] = xx[135] + xx[80] * xx[115] * xx[15];
18500 xx[129] = xx[816] * (xx[124] - xx[80] * xx[111] * xx[15] + xx[123]);
18501 xx[135] = xx[152] - xx[131];
18502 xx[131] = xx[818] * xx[135];
18503 xx[147] = xx[80] * xx[115] * xx[19] + xx[9];
18504 xx[9] = (xx[125] - xx[80] * xx[111] * xx[19] + xx[147]) * xx[816];
18505 xx[77] = xx[146] + xx[79];
18506 xx[152] = xx[64] + xx[96] - xx[80] * xx[107] * xx[19] - xx[129];
18507 xx[153] = xx[131] + xx[103] - xx[80] * xx[107] * xx[15] + xx[9];
18508 xx[154] = xx[77] - (xx[15] * xx[77] * xx[15] + xx[77] * xx[19] * xx[19]) * xx
18509 [80];
18510 pm_math_quatXform(xx + 72, xx + 152, xx + 77);
18511 xx[96] = xx[857] * ((xx[3] * xx[193] + xx[1] * xx[90]) * xx[80] - xx[10]);
18512 xx[90] = xx[816] * (xx[10] - (xx[26] * xx[33] + xx[6] * xx[31]) * xx[80]);
18513 xx[6] = xx[80] * (xx[165] * xx[1] + xx[174] * xx[3]) * xx[857];
18514 xx[1] = xx[80] * (xx[31] * xx[24] + xx[33] * xx[14]) * xx[816];
18515 xx[152] = xx[5];
18516 xx[153] = xx[262];
18517 xx[154] = xx[311];
18518 xx[155] = xx[387];
18519 xx[3] = xx[393] * xx[383] - xx[313] * xx[391];
18520 xx[14] = xx[383] * xx[398] + xx[313] * xx[306];
18521 xx[24] = xx[383] * xx[306] - xx[313] * xx[398];
18522 xx[26] = xx[393] * xx[313] + xx[383] * xx[391];
18523 xx[156] = xx[3];
18524 xx[157] = - xx[14];
18525 xx[158] = xx[24];
18526 xx[159] = xx[26];
18527 pm_math_quatCompose(xx + 152, xx + 156, xx + 160);
18528 xx[31] = xx[393] * xx[848];
18529 xx[33] = xx[848] * xx[391];
18530 xx[103] = xx[21] * xx[853];
18531 xx[107] = xx[21] * xx[854];
18532 xx[111] = xx[853] - (xx[21] * xx[103] - xx[25] * xx[107]) * xx[80];
18533 xx[115] = xx[846] * xx[14];
18534 xx[156] = xx[24] * xx[846];
18535 xx[157] = xx[80] * (xx[115] * xx[26] + xx[3] * xx[156]);
18536 xx[158] = (xx[156] * xx[26] - xx[3] * xx[115]) * xx[80];
18537 xx[3] = xx[854] - xx[80] * (xx[25] * xx[103] + xx[21] * xx[107]);
18538 xx[26] = xx[846] - (xx[115] * xx[14] + xx[24] * xx[156]) * xx[80];
18539 xx[164] = (xx[31] * xx[306] + xx[33] * xx[398]) * xx[80] + xx[111] - xx[157];
18540 xx[165] = xx[158] + xx[80] * (xx[31] * xx[398] - xx[33] * xx[306]) + xx[3];
18541 xx[166] = xx[26] + xx[848] - (xx[33] * xx[391] + xx[393] * xx[31]) * xx[80] +
18542 xx[855];
18543 pm_math_cross3(xx + 164, xx + 267, xx + 167);
18544 pm_math_quatXform(xx + 160, xx + 167, xx + 164);
18545 xx[14] = xx[262] * xx[116];
18546 xx[24] = xx[387] * xx[116];
18547 xx[31] = xx[80] * xx[846] * (xx[14] * xx[311] - xx[24] * xx[5]);
18548 xx[33] = xx[410] - xx[413];
18549 xx[167] = xx[111];
18550 xx[168] = xx[3];
18551 xx[169] = xx[855];
18552 pm_math_cross3(xx + 167, xx + 126, xx + 170);
18553 pm_math_quatXform(xx + 428, xx + 170, xx + 167);
18554 xx[3] = xx[167] - xx[848] * xx[433];
18555 xx[103] = xx[168] + xx[848] * xx[432];
18556 xx[107] = xx[103] * xx[313] + xx[383] * xx[3];
18557 xx[111] = xx[410] * xx[313] - xx[409] * xx[383];
18558 xx[115] = xx[313] * xx[433] + xx[432] * xx[383];
18559 xx[156] = (xx[433] + xx[80] * xx[111] * xx[313] - xx[80] * xx[115] * xx[313] -
18560 xx[410]) * xx[846];
18561 xx[159] = xx[409] - xx[437];
18562 xx[170] = (xx[432] + xx[80] * xx[111] * xx[383] - xx[80] * xx[115] * xx[383] +
18563 xx[39]) * xx[846];
18564 xx[171] = xx[848] * xx[33] + xx[3] - xx[80] * xx[107] * xx[383] - xx[156];
18565 xx[172] = xx[848] * xx[159] + xx[103] - xx[80] * xx[107] * xx[313] + xx[170];
18566 xx[173] = xx[169] - (xx[313] * xx[313] * xx[169] + xx[169] * xx[383] * xx[383])
18567 * xx[80];
18568 pm_math_quatXform(xx + 152, xx + 171, xx + 167);
18569 xx[3] = xx[341] * xx[19] - xx[15] * xx[340];
18570 xx[39] = xx[342] * xx[19] - xx[15] * xx[339];
18571 xx[103] = xx[339] * xx[19] + xx[15] * xx[342];
18572 xx[107] = xx[15] * xx[341] + xx[340] * xx[19];
18573 xx[171] = - xx[3];
18574 xx[172] = xx[39];
18575 xx[173] = xx[103];
18576 xx[174] = - xx[107];
18577 pm_math_quatCompose(xx + 72, xx + 171, xx + 175);
18578 xx[111] = xx[103] * xx[816];
18579 xx[115] = xx[816] * xx[39];
18580 xx[171] = xx[80] * (xx[111] * xx[3] - xx[107] * xx[115]);
18581 xx[172] = xx[340] * xx[818];
18582 xx[173] = xx[341] * xx[818];
18583 pm_math_quatInverseXform(xx + 335, xx + 81, xx + 179);
18584 pm_math_quatInverseXform(xx + 331, xx + 830, xx + 182);
18585 xx[174] = xx[23] * xx[261];
18586 xx[185] = xx[246] * xx[87] - xx[56] * xx[23];
18587 xx[186] = xx[87] * xx[261];
18588 xx[187] = - xx[174];
18589 xx[188] = xx[185];
18590 xx[189] = xx[186];
18591 pm_math_cross3(xx + 300, xx + 187, xx + 190);
18592 xx[187] = (xx[115] * xx[3] + xx[107] * xx[111]) * xx[80];
18593 xx[3] = xx[816] - (xx[115] * xx[39] + xx[103] * xx[111]) * xx[80];
18594 xx[197] = xx[171] + xx[80] * (xx[342] * xx[172] - xx[339] * xx[173]) + xx[179]
18595 + xx[182] + xx[80] * (xx[190] + xx[174] * xx[62]) - xx[87];
18596 xx[198] = (xx[339] * xx[172] + xx[342] * xx[173]) * xx[80] + xx[180] + xx[183]
18597 + xx[80] * (xx[191] - xx[62] * xx[185]) - xx[187];
18598 xx[199] = xx[3] + xx[818] - (xx[340] * xx[172] + xx[341] * xx[173]) * xx[80] +
18599 xx[181] + xx[184] + (xx[192] - xx[186] * xx[62]) * xx[80] - xx[23] + xx[838];
18600 pm_math_cross3(xx + 197, xx + 84, xx + 172);
18601 pm_math_quatXform(xx + 175, xx + 172, xx + 179);
18602 xx[172] = xx[305] * xx[838] - xx[344] * xx[23];
18603 xx[173] = xx[255] * xx[838] + xx[87] * xx[243] - xx[23] * xx[238];
18604 xx[174] = xx[80] * xx[254] * xx[838] + xx[344] * xx[87];
18605 pm_math_quatXform(xx + 140, xx + 172, xx + 182);
18606 pm_math_cross3(xx + 830, xx + 324, xx + 172);
18607 xx[188] = xx[65] + xx[182] + xx[172];
18608 xx[189] = xx[61] + xx[183] + xx[173];
18609 xx[190] = xx[184] - xx[67] + xx[174];
18610 pm_math_quatXform(xx + 68, xx + 188, xx + 172);
18611 pm_math_cross3(xx + 81, xx + 345, xx + 182);
18612 xx[188] = xx[149] + xx[172] + xx[182];
18613 xx[189] = xx[150] + xx[173] + xx[183];
18614 xx[190] = xx[151] + xx[174] + xx[184];
18615 pm_math_quatXform(xx + 42, xx + 188, xx + 172);
18616 xx[39] = xx[144] + xx[172] - xx[343] * xx[818];
18617 xx[103] = xx[145] + xx[173] + xx[349] * xx[818];
18618 xx[107] = xx[103] * xx[15] + xx[19] * xx[39];
18619 xx[111] = xx[343] * xx[15] + xx[349] * xx[19];
18620 xx[115] = xx[816] * (xx[343] - xx[80] * xx[111] * xx[15] + xx[123]);
18621 xx[182] = (xx[349] - xx[80] * xx[111] * xx[19] + xx[147]) * xx[816];
18622 xx[111] = xx[146] + xx[174];
18623 xx[172] = xx[64] + xx[39] - xx[80] * xx[107] * xx[19] - xx[115];
18624 xx[173] = xx[131] + xx[103] - xx[80] * xx[107] * xx[15] + xx[182];
18625 xx[174] = xx[111] - (xx[15] * xx[111] * xx[15] + xx[111] * xx[19] * xx[19]) *
18626 xx[80];
18627 pm_math_quatXform(xx + 72, xx + 172, xx + 183);
18628 xx[39] = xx[846] * (xx[116] - (xx[387] * xx[24] + xx[262] * xx[14]) * xx[80]);
18629 xx[103] = xx[80] * (xx[14] * xx[5] + xx[24] * xx[311]) * xx[846];
18630 xx[188] = xx[451];
18631 xx[189] = xx[458];
18632 xx[190] = xx[534];
18633 xx[191] = xx[585];
18634 xx[5] = xx[558] * xx[399] - xx[452] * xx[544];
18635 xx[14] = xx[399] * xx[560] + xx[452] * xx[513];
18636 xx[24] = xx[399] * xx[513] - xx[452] * xx[560];
18637 xx[107] = xx[558] * xx[452] + xx[399] * xx[544];
18638 xx[197] = xx[5];
18639 xx[198] = - xx[14];
18640 xx[199] = xx[24];
18641 xx[200] = xx[107];
18642 pm_math_quatCompose(xx + 188, xx + 197, xx + 201);
18643 xx[111] = xx[24] * xx[868];
18644 xx[116] = xx[868] * xx[14];
18645 xx[172] = xx[80] * (xx[5] * xx[111] + xx[116] * xx[107]);
18646 xx[173] = xx[558] * xx[870];
18647 xx[174] = xx[870] * xx[544];
18648 xx[186] = xx[21] * xx[875];
18649 xx[192] = xx[21] * xx[876];
18650 xx[193] = xx[875] - (xx[21] * xx[186] - xx[25] * xx[192]) * xx[80];
18651 xx[195] = xx[876] - xx[80] * (xx[25] * xx[186] + xx[21] * xx[192]);
18652 xx[186] = (xx[111] * xx[107] - xx[5] * xx[116]) * xx[80];
18653 xx[5] = (xx[116] * xx[14] + xx[24] * xx[111]) * xx[80] - xx[868];
18654 xx[197] = xx[172] + (xx[173] * xx[513] + xx[174] * xx[560]) * xx[80] + xx[193];
18655 xx[198] = xx[80] * (xx[173] * xx[560] - xx[174] * xx[513]) + xx[195] - xx[186];
18656 xx[199] = xx[5] + xx[870] - (xx[174] * xx[544] + xx[558] * xx[173]) * xx[80] +
18657 xx[877];
18658 pm_math_cross3(xx + 197, xx + 267, xx + 205);
18659 pm_math_quatXform(xx + 201, xx + 205, xx + 197);
18660 xx[14] = xx[582] - xx[548];
18661 xx[205] = xx[193];
18662 xx[206] = xx[195];
18663 xx[207] = xx[877];
18664 pm_math_cross3(xx + 205, xx + 126, xx + 208);
18665 pm_math_quatXform(xx + 575, xx + 208, xx + 205);
18666 xx[24] = xx[205] - xx[870] * xx[580];
18667 xx[107] = xx[206] + xx[870] * xx[579];
18668 xx[111] = xx[107] * xx[452] + xx[399] * xx[24];
18669 xx[116] = xx[547] * xx[399] - xx[548] * xx[452];
18670 xx[173] = xx[452] * xx[580] + xx[579] * xx[399];
18671 xx[174] = (xx[580] + xx[80] * xx[116] * xx[452] - xx[80] * xx[173] * xx[452] +
18672 xx[548]) * xx[868];
18673 xx[192] = xx[589] - xx[547];
18674 xx[193] = (xx[579] + xx[80] * xx[116] * xx[399] - xx[80] * xx[173] * xx[399] +
18675 xx[130]) * xx[868];
18676 xx[208] = xx[870] * xx[14] + xx[24] - xx[80] * xx[111] * xx[399] + xx[174];
18677 xx[209] = xx[870] * xx[192] + xx[107] - xx[80] * xx[111] * xx[452] - xx[193];
18678 xx[210] = xx[207] - (xx[452] * xx[452] * xx[207] + xx[207] * xx[399] * xx[399])
18679 * xx[80];
18680 pm_math_quatXform(xx + 188, xx + 208, xx + 205);
18681 xx[24] = xx[10] * xx[458];
18682 xx[107] = xx[10] * xx[543];
18683 xx[111] = xx[80] * xx[868] * (xx[534] * xx[24] + xx[451] * xx[107]);
18684 xx[116] = xx[490] * xx[19] - xx[15] * xx[489];
18685 xx[130] = xx[491] * xx[19] - xx[15] * xx[488];
18686 xx[173] = xx[488] * xx[19] + xx[15] * xx[491];
18687 xx[195] = xx[15] * xx[490] + xx[489] * xx[19];
18688 xx[208] = - xx[116];
18689 xx[209] = xx[130];
18690 xx[210] = xx[173];
18691 xx[211] = - xx[195];
18692 pm_math_quatCompose(xx + 72, xx + 208, xx + 212);
18693 xx[200] = xx[173] * xx[816];
18694 xx[208] = xx[816] * xx[130];
18695 xx[209] = xx[80] * (xx[200] * xx[116] - xx[195] * xx[208]);
18696 xx[210] = xx[818] * xx[489];
18697 xx[211] = xx[818] * xx[490];
18698 pm_math_quatInverseXform(xx + 484, xx + 81, xx + 216);
18699 pm_math_quatInverseXform(xx + 480, xx + 830, xx + 219);
18700 xx[222] = xx[440] * xx[23];
18701 xx[223] = xx[23] * xx[303] - xx[87] * xx[400];
18702 xx[224] = xx[440] * xx[87];
18703 xx[225] = xx[222];
18704 xx[226] = xx[223];
18705 xx[227] = - xx[224];
18706 pm_math_cross3(xx + 441, xx + 225, xx + 228);
18707 xx[225] = (xx[208] * xx[116] + xx[195] * xx[200]) * xx[80];
18708 xx[116] = xx[816] - (xx[208] * xx[130] + xx[173] * xx[200]) * xx[80];
18709 xx[231] = xx[209] + xx[80] * (xx[491] * xx[210] - xx[488] * xx[211]) + xx[216]
18710 + xx[219] + xx[80] * (xx[228] + xx[397] * xx[222]) - xx[87];
18711 xx[232] = (xx[488] * xx[210] + xx[491] * xx[211]) * xx[80] + xx[217] + xx[220]
18712 + xx[80] * (xx[229] + xx[397] * xx[223]) - xx[225];
18713 xx[233] = xx[116] + xx[818] - (xx[489] * xx[210] + xx[490] * xx[211]) * xx[80]
18714 + xx[218] + xx[221] + (xx[230] - xx[397] * xx[224]) * xx[80] - xx[23] - xx
18715 [840];
18716 pm_math_cross3(xx + 231, xx + 84, xx + 216);
18717 pm_math_quatXform(xx + 212, xx + 216, xx + 219);
18718 xx[216] = xx[457] * xx[840] - xx[493] * xx[23];
18719 xx[217] = xx[401] * xx[840] + xx[23] * xx[13] + xx[87] * xx[314];
18720 xx[218] = xx[80] * xx[327] * xx[840] + xx[493] * xx[87];
18721 pm_math_quatXform(xx + 140, xx + 216, xx + 222);
18722 pm_math_cross3(xx + 830, xx + 454, xx + 216);
18723 xx[226] = xx[65] + xx[222] + xx[216];
18724 xx[227] = xx[61] + xx[223] + xx[217];
18725 xx[228] = xx[224] - xx[67] + xx[218];
18726 pm_math_quatXform(xx + 68, xx + 226, xx + 216);
18727 pm_math_cross3(xx + 81, xx + 494, xx + 222);
18728 xx[226] = xx[149] + xx[216] + xx[222];
18729 xx[227] = xx[150] + xx[217] + xx[223];
18730 xx[228] = xx[151] + xx[218] + xx[224];
18731 pm_math_quatXform(xx + 42, xx + 226, xx + 216);
18732 xx[130] = xx[144] + xx[216] - xx[492] * xx[818];
18733 xx[173] = xx[145] + xx[217] + xx[498] * xx[818];
18734 xx[195] = xx[173] * xx[15] + xx[19] * xx[130];
18735 xx[200] = xx[492] * xx[15] + xx[498] * xx[19];
18736 xx[208] = xx[816] * (xx[492] - xx[80] * xx[200] * xx[15] + xx[123]);
18737 xx[210] = (xx[498] - xx[80] * xx[200] * xx[19] + xx[147]) * xx[816];
18738 xx[200] = xx[146] + xx[218];
18739 xx[216] = xx[64] + xx[130] - xx[80] * xx[195] * xx[19] - xx[208];
18740 xx[217] = xx[131] + xx[173] - xx[80] * xx[195] * xx[15] + xx[210];
18741 xx[218] = xx[200] - (xx[15] * xx[200] * xx[15] + xx[200] * xx[19] * xx[19]) *
18742 xx[80];
18743 pm_math_quatXform(xx + 72, xx + 216, xx + 222);
18744 xx[130] = xx[868] * ((xx[107] * xx[543] + xx[24] * xx[458]) * xx[80] - xx[10]);
18745 xx[173] = xx[80] * (xx[534] * xx[107] - xx[451] * xx[24]) * xx[868];
18746 xx[226] = xx[604];
18747 xx[227] = xx[733];
18748 xx[228] = xx[677];
18749 xx[229] = xx[678];
18750 xx[24] = xx[706] * xx[532] - xx[605] * xx[686];
18751 xx[107] = xx[532] * xx[708] + xx[605] * xx[670];
18752 xx[195] = xx[532] * xx[670] - xx[605] * xx[708];
18753 xx[200] = xx[706] * xx[605] + xx[532] * xx[686];
18754 xx[230] = xx[24];
18755 xx[231] = - xx[107];
18756 xx[232] = xx[195];
18757 xx[233] = xx[200];
18758 pm_math_quatCompose(xx + 226, xx + 230, xx + 234);
18759 xx[211] = xx[195] * xx[879];
18760 xx[216] = xx[879] * xx[107];
18761 xx[217] = xx[80] * (xx[24] * xx[211] + xx[216] * xx[200]);
18762 xx[218] = xx[706] * xx[881];
18763 xx[230] = xx[881] * xx[686];
18764 xx[231] = xx[21] * xx[886];
18765 xx[232] = xx[21] * xx[887];
18766 xx[233] = xx[886] - (xx[21] * xx[231] - xx[25] * xx[232]) * xx[80];
18767 xx[239] = xx[887] - xx[80] * (xx[25] * xx[231] + xx[21] * xx[232]);
18768 xx[231] = (xx[211] * xx[200] - xx[24] * xx[216]) * xx[80];
18769 xx[24] = (xx[216] * xx[107] + xx[195] * xx[211]) * xx[80] - xx[879];
18770 xx[240] = xx[217] + (xx[218] * xx[670] + xx[230] * xx[708]) * xx[80] + xx[233];
18771 xx[241] = xx[80] * (xx[218] * xx[708] - xx[230] * xx[670]) + xx[239] - xx[231];
18772 xx[242] = xx[24] + xx[881] - (xx[230] * xx[686] + xx[706] * xx[218]) * xx[80]
18773 + xx[888];
18774 pm_math_cross3(xx + 240, xx + 267, xx + 247);
18775 pm_math_quatXform(xx + 234, xx + 247, xx + 240);
18776 xx[107] = xx[10] * xx[612];
18777 xx[195] = xx[10] * xx[678];
18778 xx[200] = xx[80] * xx[879] * (xx[677] * xx[107] + xx[604] * xx[195]);
18779 xx[211] = xx[731] - xx[685];
18780 xx[247] = xx[233];
18781 xx[248] = xx[239];
18782 xx[249] = xx[888];
18783 pm_math_cross3(xx + 247, xx + 126, xx + 251);
18784 pm_math_quatXform(xx + 725, xx + 251, xx + 247);
18785 xx[216] = xx[247] - xx[881] * xx[730];
18786 xx[218] = xx[248] + xx[881] * xx[729];
18787 xx[230] = xx[218] * xx[605] + xx[532] * xx[216];
18788 xx[232] = xx[684] * xx[532] - xx[685] * xx[605];
18789 xx[233] = xx[605] * xx[730] + xx[729] * xx[532];
18790 xx[239] = (xx[730] + xx[80] * xx[232] * xx[605] - xx[80] * xx[233] * xx[605] +
18791 xx[685]) * xx[879];
18792 xx[251] = xx[737] - xx[684];
18793 xx[252] = (xx[729] + xx[80] * xx[232] * xx[532] - xx[80] * xx[233] * xx[532] +
18794 xx[196]) * xx[879];
18795 xx[258] = xx[881] * xx[211] + xx[216] - xx[80] * xx[230] * xx[532] + xx[239];
18796 xx[259] = xx[881] * xx[251] + xx[218] - xx[80] * xx[230] * xx[605] - xx[252];
18797 xx[260] = xx[249] - (xx[605] * xx[605] * xx[249] + xx[249] * xx[532] * xx[532])
18798 * xx[80];
18799 pm_math_quatXform(xx + 226, xx + 258, xx + 247);
18800 xx[196] = xx[640] * xx[19] - xx[15] * xx[639];
18801 xx[216] = xx[641] * xx[19] - xx[15] * xx[638];
18802 xx[218] = xx[638] * xx[19] + xx[15] * xx[641];
18803 xx[230] = xx[15] * xx[640] + xx[639] * xx[19];
18804 xx[262] = - xx[196];
18805 xx[263] = xx[216];
18806 xx[264] = xx[218];
18807 xx[265] = - xx[230];
18808 pm_math_quatCompose(xx + 72, xx + 262, xx + 277);
18809 xx[232] = xx[218] * xx[816];
18810 xx[233] = xx[816] * xx[216];
18811 xx[253] = xx[80] * (xx[232] * xx[196] - xx[230] * xx[233]);
18812 xx[254] = xx[818] * xx[639];
18813 xx[258] = xx[818] * xx[640];
18814 pm_math_quatInverseXform(xx + 630, xx + 81, xx + 262);
18815 pm_math_quatInverseXform(xx + 626, xx + 830, xx + 281);
18816 xx[259] = xx[546] * xx[23];
18817 xx[260] = xx[23] * xx[379] - xx[87] * xx[473];
18818 xx[265] = xx[546] * xx[87];
18819 xx[284] = - xx[259];
18820 xx[285] = xx[260];
18821 xx[286] = xx[265];
18822 pm_math_cross3(xx + 601, xx + 284, xx + 287);
18823 xx[266] = (xx[233] * xx[196] + xx[230] * xx[232]) * xx[80];
18824 xx[196] = xx[816] - (xx[233] * xx[216] + xx[218] * xx[232]) * xx[80];
18825 xx[284] = xx[253] + xx[80] * (xx[641] * xx[254] - xx[638] * xx[258]) + xx[262]
18826 + xx[281] + xx[80] * (xx[287] + xx[312] * xx[259]) - xx[87];
18827 xx[285] = (xx[638] * xx[254] + xx[641] * xx[258]) * xx[80] + xx[263] + xx[282]
18828 + xx[80] * (xx[288] - xx[312] * xx[260]) - xx[266];
18829 xx[286] = xx[196] + xx[818] - (xx[639] * xx[254] + xx[640] * xx[258]) * xx[80]
18830 + xx[264] + xx[283] + (xx[289] - xx[312] * xx[265]) * xx[80] - xx[23] - xx
18831 [842];
18832 pm_math_cross3(xx + 284, xx + 84, xx + 258);
18833 pm_math_quatXform(xx + 277, xx + 258, xx + 262);
18834 xx[258] = xx[611] * xx[842] - xx[635] * xx[23];
18835 xx[259] = xx[535] * xx[842] + xx[23] * xx[463] + xx[87] * xx[446];
18836 xx[260] = xx[80] * xx[506] * xx[842] + xx[635] * xx[87];
18837 pm_math_quatXform(xx + 140, xx + 258, xx + 281);
18838 pm_math_cross3(xx + 830, xx + 595, xx + 258);
18839 xx[284] = xx[65] + xx[281] + xx[258];
18840 xx[285] = xx[61] + xx[282] + xx[259];
18841 xx[286] = xx[283] - xx[67] + xx[260];
18842 pm_math_quatXform(xx + 68, xx + 284, xx + 258);
18843 pm_math_cross3(xx + 81, xx + 644, xx + 281);
18844 xx[284] = xx[149] + xx[258] + xx[281];
18845 xx[285] = xx[150] + xx[259] + xx[282];
18846 xx[286] = xx[151] + xx[260] + xx[283];
18847 pm_math_quatXform(xx + 42, xx + 284, xx + 258);
18848 xx[216] = xx[144] + xx[258] - xx[634] * xx[818];
18849 xx[218] = xx[145] + xx[259] + xx[636] * xx[818];
18850 xx[230] = xx[218] * xx[15] + xx[19] * xx[216];
18851 xx[232] = xx[634] * xx[15] + xx[636] * xx[19];
18852 xx[233] = xx[816] * (xx[634] - xx[80] * xx[232] * xx[15] + xx[123]);
18853 xx[254] = (xx[636] - xx[80] * xx[232] * xx[19] + xx[147]) * xx[816];
18854 xx[232] = xx[146] + xx[260];
18855 xx[258] = xx[64] + xx[216] - xx[80] * xx[230] * xx[19] - xx[233];
18856 xx[259] = xx[131] + xx[218] - xx[80] * xx[230] * xx[15] + xx[254];
18857 xx[260] = xx[232] - (xx[15] * xx[232] * xx[15] + xx[232] * xx[19] * xx[19]) *
18858 xx[80];
18859 pm_math_quatXform(xx + 72, xx + 258, xx + 281);
18860 xx[216] = xx[879] * ((xx[195] * xx[678] + xx[107] * xx[612]) * xx[80] - xx[10]);
18861 xx[218] = xx[80] * (xx[604] * xx[107] - xx[677] * xx[195]) * xx[879];
18862 xx[284] = xx[672];
18863 xx[285] = xx[784];
18864 xx[286] = xx[741];
18865 xx[287] = xx[785];
18866 xx[107] = xx[745] * xx[643] - xx[660] * xx[743];
18867 xx[195] = xx[643] * xx[753] + xx[660] * xx[720];
18868 xx[230] = xx[643] * xx[720] - xx[660] * xx[753];
18869 xx[232] = xx[745] * xx[660] + xx[643] * xx[743];
18870 xx[288] = xx[107];
18871 xx[289] = - xx[195];
18872 xx[290] = xx[230];
18873 xx[291] = xx[232];
18874 pm_math_quatCompose(xx + 284, xx + 288, xx + 292);
18875 xx[258] = xx[230] * xx[805];
18876 xx[259] = xx[805] * xx[195];
18877 xx[260] = xx[80] * (xx[107] * xx[258] + xx[259] * xx[232]);
18878 xx[265] = xx[745] * xx[807];
18879 xx[270] = xx[807] * xx[743];
18880 xx[288] = xx[21] * xx[812];
18881 xx[289] = xx[21] * xx[813];
18882 xx[290] = xx[812] - (xx[21] * xx[288] - xx[25] * xx[289]) * xx[80];
18883 xx[291] = xx[813] - xx[80] * (xx[25] * xx[288] + xx[21] * xx[289]);
18884 xx[288] = (xx[258] * xx[232] - xx[107] * xx[259]) * xx[80];
18885 xx[107] = (xx[259] * xx[195] + xx[230] * xx[258]) * xx[80] - xx[805];
18886 xx[296] = xx[260] + (xx[265] * xx[720] + xx[270] * xx[753]) * xx[80] + xx[290];
18887 xx[297] = xx[80] * (xx[265] * xx[753] - xx[270] * xx[720]) + xx[291] - xx[288];
18888 xx[298] = xx[107] + xx[807] - (xx[270] * xx[743] + xx[745] * xx[265]) * xx[80]
18889 + xx[814];
18890 pm_math_cross3(xx + 296, xx + 267, xx + 307);
18891 pm_math_quatXform(xx + 292, xx + 307, xx + 296);
18892 xx[195] = xx[10] * xx[671];
18893 xx[230] = xx[10] * xx[742];
18894 xx[232] = xx[80] * xx[805] * (xx[741] * xx[195] - xx[672] * xx[230]);
18895 xx[307] = xx[290];
18896 xx[308] = xx[291];
18897 xx[309] = xx[814];
18898 pm_math_cross3(xx + 307, xx + 126, xx + 289);
18899 pm_math_quatXform(xx + 777, xx + 289, xx + 307);
18900 xx[258] = xx[307] - xx[807] * xx[782];
18901 xx[259] = xx[308] + xx[807] * xx[781];
18902 xx[265] = xx[259] * xx[660] + xx[643] * xx[258];
18903 xx[270] = xx[747] + xx[776];
18904 xx[289] = xx[747] * xx[660] + xx[746] * xx[643];
18905 xx[290] = xx[660] * xx[782] + xx[781] * xx[643];
18906 xx[291] = (xx[782] - xx[80] * xx[289] * xx[660] - xx[80] * xx[290] * xx[660] +
18907 xx[747]) * xx[805];
18908 xx[299] = xx[746] - xx[789];
18909 xx[304] = (xx[781] - xx[80] * xx[289] * xx[643] - xx[80] * xx[290] * xx[643] +
18910 xx[194]) * xx[805];
18911 xx[315] = xx[258] - xx[80] * xx[265] * xx[643] - xx[807] * xx[270] + xx[291];
18912 xx[316] = xx[807] * xx[299] + xx[259] - xx[80] * xx[265] * xx[660] - xx[304];
18913 xx[317] = xx[309] - (xx[660] * xx[660] * xx[309] + xx[309] * xx[643] * xx[643])
18914 * xx[80];
18915 pm_math_quatXform(xx + 284, xx + 315, xx + 307);
18916 xx[194] = xx[917] * xx[19] - xx[15] * xx[916];
18917 xx[258] = xx[918] * xx[19] - xx[15] * xx[915];
18918 xx[259] = xx[915] * xx[19] + xx[15] * xx[918];
18919 xx[265] = xx[15] * xx[917] + xx[916] * xx[19];
18920 xx[315] = - xx[194];
18921 xx[316] = xx[258];
18922 xx[317] = xx[259];
18923 xx[318] = - xx[265];
18924 pm_math_quatCompose(xx + 72, xx + 315, xx + 319);
18925 xx[289] = xx[259] * xx[816];
18926 xx[290] = xx[816] * xx[258];
18927 xx[310] = xx[80] * (xx[289] * xx[194] - xx[265] * xx[290]);
18928 xx[311] = xx[818] * xx[916];
18929 xx[315] = xx[818] * xx[917];
18930 pm_math_quatInverseXform(xx + 911, xx + 81, xx + 316);
18931 pm_math_quatInverseXform(xx + 897, xx + 830, xx + 327);
18932 xx[323] = xx[87] * xx[637];
18933 xx[330] = (xx[290] * xx[194] + xx[265] * xx[289]) * xx[80];
18934 xx[194] = xx[816] - (xx[290] * xx[258] + xx[259] * xx[289]) * xx[80];
18935 xx[350] = xx[310] + xx[80] * (xx[918] * xx[311] - xx[915] * xx[315]) + xx[316]
18936 + xx[327] + xx[80] * xx[323] * xx[637] - xx[87];
18937 xx[351] = (xx[915] * xx[311] + xx[918] * xx[315]) * xx[80] + xx[317] + xx[328]
18938 - xx[80] * xx[2] * xx[323] - xx[330];
18939 xx[352] = xx[194] + xx[818] - (xx[916] * xx[311] + xx[917] * xx[315]) * xx[80]
18940 + xx[318] + xx[329] - (xx[23] + xx[844]);
18941 pm_math_cross3(xx + 350, xx + 84, xx + 315);
18942 pm_math_quatXform(xx + 319, xx + 315, xx + 327);
18943 xx[315] = xx[17] * xx[844] - xx[23] * xx[66];
18944 xx[316] = - (xx[844] * xx[20] + xx[23] * xx[707] + xx[790] * xx[87]);
18945 xx[317] = xx[87] * xx[66];
18946 pm_math_quatXform(xx + 140, xx + 315, xx + 350);
18947 pm_math_cross3(xx + 830, xx + 891, xx + 315);
18948 xx[353] = xx[65] + xx[350] + xx[315];
18949 xx[354] = xx[61] + xx[351] + xx[316];
18950 xx[355] = xx[352] - xx[67] + xx[317];
18951 pm_math_quatXform(xx + 68, xx + 353, xx + 315);
18952 pm_math_cross3(xx + 81, xx + 919, xx + 350);
18953 xx[81] = xx[149] + xx[315] + xx[350];
18954 xx[82] = xx[150] + xx[316] + xx[351];
18955 xx[83] = xx[151] + xx[317] + xx[352];
18956 pm_math_quatXform(xx + 42, xx + 81, xx + 149);
18957 xx[23] = xx[144] + xx[149] - xx[121] * xx[818];
18958 xx[61] = xx[145] + xx[150] + xx[148] * xx[818];
18959 xx[65] = xx[61] * xx[15] + xx[19] * xx[23];
18960 xx[67] = xx[121] * xx[15] + xx[148] * xx[19];
18961 xx[81] = xx[816] * (xx[121] - xx[80] * xx[67] * xx[15] + xx[123]);
18962 xx[82] = (xx[148] - xx[80] * xx[67] * xx[19] + xx[147]) * xx[816];
18963 xx[67] = xx[146] + xx[151];
18964 xx[144] = xx[64] + xx[23] - xx[80] * xx[65] * xx[19] - xx[81];
18965 xx[145] = xx[131] + xx[61] - xx[80] * xx[65] * xx[15] + xx[82];
18966 xx[146] = xx[67] - (xx[15] * xx[67] * xx[15] + xx[67] * xx[19] * xx[19]) * xx
18967 [80];
18968 pm_math_quatXform(xx + 72, xx + 144, xx + 149);
18969 xx[23] = xx[805] * ((xx[230] * xx[742] + xx[195] * xx[671]) * xx[80] - xx[10]);
18970 xx[10] = xx[80] * (xx[672] * xx[195] + xx[741] * xx[230]) * xx[805];
18971 xx[350] = xx[46] + xx[4] + xx[49] - (xx[104] + xx[34] + xx[77]);
18972 xx[351] = xx[47] + xx[96] + xx[50] - (xx[105] + xx[90] + xx[78]);
18973 xx[352] = xx[48] + xx[6] + xx[51] - (xx[106] + xx[1] + xx[79]);
18974 xx[353] = xx[164] + xx[31] + xx[167] - (xx[179] + xx[34] + xx[183]);
18975 xx[354] = xx[165] + xx[39] + xx[168] - (xx[180] + xx[90] + xx[184]);
18976 xx[355] = xx[166] + xx[103] + xx[169] - (xx[181] + xx[1] + xx[185]);
18977 xx[356] = xx[197] + xx[205] - xx[111] - (xx[219] + xx[34] + xx[222]);
18978 xx[357] = xx[198] + xx[130] + xx[206] - (xx[220] + xx[90] + xx[223]);
18979 xx[358] = xx[199] + xx[173] + xx[207] - (xx[221] + xx[1] + xx[224]);
18980 xx[359] = xx[240] + xx[200] + xx[247] - (xx[262] + xx[34] + xx[281]);
18981 xx[360] = xx[241] + xx[216] + xx[248] - (xx[263] + xx[90] + xx[282]);
18982 xx[361] = xx[242] + xx[218] + xx[249] - (xx[264] + xx[1] + xx[283]);
18983 xx[362] = xx[296] + xx[232] + xx[307] - (xx[327] + xx[34] + xx[149]);
18984 xx[363] = xx[297] + xx[23] + xx[308] - (xx[328] + xx[90] + xx[150]);
18985 xx[364] = xx[298] + xx[10] + xx[309] - (xx[329] + xx[1] + xx[151]);
18986 memcpy(xx + 1469, xx + 941, 495 * sizeof(double));
18987 factorAndSolveWide(15, 33, xx + 1469, xx + 402, xx + 514, ii + 0, xx + 350,
18988 xx[16], xx + 1436);
18989 xx[16] = xx[807] + xx[1436];
18990 xx[46] = xx[812] + xx[1437];
18991 xx[47] = xx[813] + xx[1438];
18992 xx[48] = xx[814] + xx[1439];
18993 xx[49] = xx[818] + xx[1440];
18994 xx[50] = xx[823] + xx[1441];
18995 xx[51] = xx[824] + xx[1442];
18996 xx[61] = xx[825] + xx[1443];
18997 xx[64] = xx[830] + xx[1444];
18998 xx[65] = xx[831] + xx[1445];
18999 xx[67] = xx[832] + xx[1446];
19000 xx[77] = xx[834] + xx[1447];
19001 xx[78] = xx[836] + xx[1448];
19002 xx[79] = xx[838] + xx[1449];
19003 xx[83] = xx[840] + xx[1450];
19004 xx[87] = xx[842] + xx[1451];
19005 xx[104] = xx[844] + xx[1452];
19006 xx[105] = xx[848] + xx[1453];
19007 xx[106] = xx[853] + xx[1454];
19008 xx[123] = xx[854] + xx[1455];
19009 xx[131] = xx[855] + xx[1456];
19010 xx[144] = xx[859] + xx[1457];
19011 xx[145] = xx[864] + xx[1458];
19012 xx[146] = xx[865] + xx[1459];
19013 xx[147] = xx[866] + xx[1460];
19014 xx[149] = xx[870] + xx[1461];
19015 xx[150] = xx[875] + xx[1462];
19016 xx[151] = xx[876] + xx[1463];
19017 xx[164] = xx[877] + xx[1464];
19018 xx[165] = xx[881] + xx[1465];
19019 xx[166] = xx[886] + xx[1466];
19020 xx[167] = xx[887] + xx[1467];
19021 xx[168] = xx[888] + xx[1468];
19022 xx[922] = xx[792];
19023 xx[923] = xx[793];
19024 xx[924] = xx[794];
19025 xx[925] = xx[795];
19026 xx[926] = xx[796];
19027 xx[927] = xx[797];
19028 xx[928] = xx[798];
19029 xx[929] = xx[799];
19030 xx[930] = xx[800];
19031 xx[931] = xx[801];
19032 xx[932] = xx[802];
19033 xx[933] = xx[803];
19034 xx[934] = xx[804];
19035 xx[935] = xx[805];
19036 xx[936] = xx[806];
19037 xx[937] = xx[16];
19038 xx[938] = xx[808];
19039 xx[939] = xx[809];
19040 xx[940] = xx[810];
19041 xx[941] = xx[811];
19042 xx[942] = xx[46];
19043 xx[943] = xx[47];
19044 xx[944] = xx[48];
19045 xx[945] = xx[815];
19046 xx[946] = xx[816];
19047 xx[947] = xx[817];
19048 xx[948] = xx[49];
19049 xx[949] = xx[819];
19050 xx[950] = xx[820];
19051 xx[951] = xx[821];
19052 xx[952] = xx[822];
19053 xx[953] = xx[50];
19054 xx[954] = xx[51];
19055 xx[955] = xx[61];
19056 xx[956] = xx[826];
19057 xx[957] = xx[827];
19058 xx[958] = xx[828];
19059 xx[959] = xx[829];
19060 xx[960] = xx[64];
19061 xx[961] = xx[65];
19062 xx[962] = xx[67];
19063 xx[963] = xx[833];
19064 xx[964] = xx[77];
19065 xx[965] = xx[835];
19066 xx[966] = xx[78];
19067 xx[967] = xx[837];
19068 xx[968] = xx[79];
19069 xx[969] = xx[839];
19070 xx[970] = xx[83];
19071 xx[971] = xx[841];
19072 xx[972] = xx[87];
19073 xx[973] = xx[843];
19074 xx[974] = xx[104];
19075 xx[975] = xx[845];
19076 xx[976] = xx[846];
19077 xx[977] = xx[847];
19078 xx[978] = xx[105];
19079 xx[979] = xx[849];
19080 xx[980] = xx[850];
19081 xx[981] = xx[851];
19082 xx[982] = xx[852];
19083 xx[983] = xx[106];
19084 xx[984] = xx[123];
19085 xx[985] = xx[131];
19086 xx[986] = xx[856];
19087 xx[987] = xx[857];
19088 xx[988] = xx[858];
19089 xx[989] = xx[144];
19090 xx[990] = xx[860];
19091 xx[991] = xx[861];
19092 xx[992] = xx[862];
19093 xx[993] = xx[863];
19094 xx[994] = xx[145];
19095 xx[995] = xx[146];
19096 xx[996] = xx[147];
19097 xx[997] = xx[867];
19098 xx[998] = xx[868];
19099 xx[999] = xx[869];
19100 xx[1000] = xx[149];
19101 xx[1001] = xx[871];
19102 xx[1002] = xx[872];
19103 xx[1003] = xx[873];
19104 xx[1004] = xx[874];
19105 xx[1005] = xx[150];
19106 xx[1006] = xx[151];
19107 xx[1007] = xx[164];
19108 xx[1008] = xx[878];
19109 xx[1009] = xx[879];
19110 xx[1010] = xx[880];
19111 xx[1011] = xx[165];
19112 xx[1012] = xx[882];
19113 xx[1013] = xx[883];
19114 xx[1014] = xx[884];
19115 xx[1015] = xx[885];
19116 xx[1016] = xx[166];
19117 xx[1017] = xx[167];
19118 xx[1018] = xx[168];
19119 xx[169] = xx[49] * xx[137];
19120 xx[179] = xx[49] * xx[138];
19121 xx[180] = xx[50] * xx[21];
19122 xx[181] = xx[51] * xx[21];
19123 xx[183] = xx[50] - (xx[21] * xx[180] - xx[25] * xx[181]) * xx[80];
19124 xx[184] = xx[51] - xx[80] * (xx[25] * xx[180] + xx[21] * xx[181]);
19125 xx[185] = xx[61];
19126 pm_math_quatInverseXform(xx + 97, xx + 183, xx + 197);
19127 xx[97] = xx[64];
19128 xx[98] = xx[65];
19129 xx[99] = xx[67];
19130 pm_math_quatInverseXform(xx + 91, xx + 97, xx + 205);
19131 xx[50] = xx[77] * xx[57];
19132 xx[51] = xx[50] * xx[76];
19133 xx[57] = xx[77] * xx[63];
19134 xx[63] = xx[59] + xx[80] * (xx[139] * xx[169] - xx[136] * xx[179]) + xx[197] +
19135 xx[205] + xx[80] * xx[51] * xx[76] - xx[50];
19136 xx[64] = (xx[136] * xx[169] + xx[139] * xx[179]) * xx[80] + xx[198] + xx[206]
19137 - xx[80] * xx[52] * xx[51] - xx[102];
19138 xx[65] = xx[18] + xx[49] - (xx[137] * xx[169] + xx[138] * xx[179]) * xx[80] +
19139 xx[199] + xx[207] - (xx[57] + xx[78]);
19140 pm_math_cross3(xx + 63, xx + 84, xx + 91);
19141 pm_math_quatXform(xx + 117, xx + 91, xx + 63);
19142 xx[18] = xx[49] * xx[55];
19143 pm_math_cross3(xx + 183, xx + 126, xx + 91);
19144 pm_math_quatXform(xx + 42, xx + 91, xx + 117);
19145 pm_math_cross3(xx + 97, xx + 112, xx + 91);
19146 pm_math_quatXform(xx + 68, xx + 91, xx + 112);
19147 xx[51] = xx[77] * xx[60];
19148 xx[59] = xx[8] * xx[78] - xx[57] * xx[88];
19149 xx[60] = xx[78] * xx[11] + xx[57] * xx[101] - xx[95] * xx[50];
19150 xx[61] = xx[50] * xx[88];
19151 pm_math_quatXform(xx + 140, xx + 59, xx + 91);
19152 pm_math_cross3(xx + 97, xx + 108, xx + 59);
19153 xx[8] = xx[77] * xx[58];
19154 xx[11] = xx[77] * xx[40];
19155 xx[76] = xx[51] + xx[91] + xx[59];
19156 xx[77] = xx[8] + xx[92] + xx[60];
19157 xx[78] = xx[93] - xx[11] + xx[61];
19158 pm_math_quatXform(xx + 68, xx + 76, xx + 58);
19159 pm_math_cross3(xx + 183, xx + 132, xx + 76);
19160 xx[91] = xx[112] + xx[58] + xx[76];
19161 xx[92] = xx[113] + xx[59] + xx[77];
19162 xx[93] = xx[114] + xx[60] + xx[78];
19163 pm_math_quatXform(xx + 42, xx + 91, xx + 58);
19164 xx[40] = xx[117] + xx[58] - xx[124] * xx[49];
19165 xx[52] = xx[118] + xx[59] + xx[125] * xx[49];
19166 xx[55] = xx[52] * xx[15] + xx[19] * xx[40];
19167 xx[61] = xx[49] * xx[135];
19168 xx[58] = xx[119] + xx[60];
19169 xx[76] = xx[18] + xx[40] - xx[80] * xx[55] * xx[19] - xx[129];
19170 xx[77] = xx[61] + xx[52] - xx[80] * xx[55] * xx[15] + xx[9];
19171 xx[78] = xx[58] - (xx[15] * xx[58] * xx[15] + xx[58] * xx[19] * xx[19]) * xx
19172 [80];
19173 pm_math_quatXform(xx + 72, xx + 76, xx + 58);
19174 xx[9] = xx[250] * xx[144];
19175 xx[40] = xx[144] * xx[245];
19176 xx[52] = xx[145] * xx[21];
19177 xx[55] = xx[146] * xx[21];
19178 xx[67] = xx[145] - (xx[21] * xx[52] - xx[25] * xx[55]) * xx[80];
19179 xx[76] = xx[146] - xx[80] * (xx[25] * xx[52] + xx[21] * xx[55]);
19180 xx[91] = xx[22] + (xx[9] * xx[244] + xx[40] * xx[256]) * xx[80] + xx[67];
19181 xx[92] = xx[80] * (xx[9] * xx[256] - xx[40] * xx[244]) + xx[76] - xx[32];
19182 xx[93] = xx[0] + xx[144] - (xx[40] * xx[245] + xx[250] * xx[9]) * xx[80] + xx
19183 [147];
19184 pm_math_cross3(xx + 91, xx + 267, xx + 100);
19185 pm_math_quatXform(xx + 35, xx + 100, xx + 91);
19186 xx[35] = xx[67];
19187 xx[36] = xx[76];
19188 xx[37] = xx[147];
19189 pm_math_cross3(xx + 35, xx + 126, xx + 76);
19190 pm_math_quatXform(xx + 271, xx + 76, xx + 35);
19191 xx[0] = xx[35] - xx[144] * xx[276];
19192 xx[9] = xx[36] + xx[144] * xx[275];
19193 xx[22] = xx[9] * xx[89] + xx[122] * xx[0];
19194 xx[76] = xx[144] * xx[12] + xx[0] - xx[80] * xx[22] * xx[122] + xx[41];
19195 xx[77] = xx[9] - xx[80] * xx[22] * xx[89] - xx[144] * xx[53] - xx[54];
19196 xx[78] = xx[37] - (xx[89] * xx[89] * xx[37] + xx[37] * xx[122] * xx[122]) *
19197 xx[80];
19198 pm_math_quatXform(xx + 27, xx + 76, xx + 35);
19199 xx[0] = xx[49] * xx[340];
19200 xx[9] = xx[49] * xx[341];
19201 pm_math_quatInverseXform(xx + 335, xx + 183, xx + 27);
19202 pm_math_quatInverseXform(xx + 331, xx + 97, xx + 52);
19203 xx[12] = xx[57] * xx[261];
19204 xx[22] = xx[246] * xx[50] - xx[56] * xx[57];
19205 xx[30] = xx[50] * xx[261];
19206 xx[76] = - xx[12];
19207 xx[77] = xx[22];
19208 xx[78] = xx[30];
19209 pm_math_cross3(xx + 300, xx + 76, xx + 100);
19210 xx[76] = xx[171] + xx[80] * (xx[342] * xx[0] - xx[339] * xx[9]) + xx[27] + xx
19211 [52] + xx[80] * (xx[100] + xx[12] * xx[62]) - xx[50];
19212 xx[77] = (xx[339] * xx[0] + xx[342] * xx[9]) * xx[80] + xx[28] + xx[53] + xx
19213 [80] * (xx[101] - xx[62] * xx[22]) - xx[187];
19214 xx[78] = xx[3] + xx[49] - (xx[340] * xx[0] + xx[341] * xx[9]) * xx[80] + xx[29]
19215 + xx[54] + (xx[102] - xx[30] * xx[62]) * xx[80] - xx[57] + xx[79];
19216 pm_math_cross3(xx + 76, xx + 84, xx + 27);
19217 pm_math_quatXform(xx + 175, xx + 27, xx + 52);
19218 xx[27] = xx[305] * xx[79] - xx[344] * xx[57];
19219 xx[28] = xx[255] * xx[79] + xx[50] * xx[243] - xx[57] * xx[238];
19220 xx[29] = xx[79] * xx[257] + xx[344] * xx[50];
19221 pm_math_quatXform(xx + 140, xx + 27, xx + 76);
19222 pm_math_cross3(xx + 97, xx + 324, xx + 27);
19223 xx[100] = xx[51] + xx[76] + xx[27];
19224 xx[101] = xx[8] + xx[77] + xx[28];
19225 xx[102] = xx[78] - xx[11] + xx[29];
19226 pm_math_quatXform(xx + 68, xx + 100, xx + 27);
19227 pm_math_cross3(xx + 183, xx + 345, xx + 76);
19228 xx[100] = xx[112] + xx[27] + xx[76];
19229 xx[101] = xx[113] + xx[28] + xx[77];
19230 xx[102] = xx[114] + xx[29] + xx[78];
19231 pm_math_quatXform(xx + 42, xx + 100, xx + 27);
19232 xx[0] = xx[117] + xx[27] - xx[49] * xx[343];
19233 xx[3] = xx[118] + xx[28] + xx[49] * xx[349];
19234 xx[9] = xx[3] * xx[15] + xx[19] * xx[0];
19235 xx[12] = xx[119] + xx[29];
19236 xx[27] = xx[18] + xx[0] - xx[80] * xx[9] * xx[19] - xx[115];
19237 xx[28] = xx[61] + xx[3] - xx[80] * xx[9] * xx[15] + xx[182];
19238 xx[29] = xx[12] - (xx[15] * xx[12] * xx[15] + xx[12] * xx[19] * xx[19]) * xx
19239 [80];
19240 pm_math_quatXform(xx + 72, xx + 27, xx + 76);
19241 xx[0] = xx[105] * xx[393];
19242 xx[3] = xx[105] * xx[391];
19243 xx[9] = xx[106] * xx[21];
19244 xx[12] = xx[123] * xx[21];
19245 xx[22] = xx[106] - (xx[21] * xx[9] - xx[25] * xx[12]) * xx[80];
19246 xx[27] = xx[123] - xx[80] * (xx[25] * xx[9] + xx[21] * xx[12]);
19247 xx[28] = (xx[0] * xx[306] + xx[3] * xx[398]) * xx[80] + xx[22] - xx[157];
19248 xx[29] = xx[158] + xx[80] * (xx[0] * xx[398] - xx[3] * xx[306]) + xx[27];
19249 xx[30] = xx[26] + xx[105] - (xx[3] * xx[391] + xx[393] * xx[0]) * xx[80] + xx
19250 [131];
19251 pm_math_cross3(xx + 28, xx + 267, xx + 100);
19252 pm_math_quatXform(xx + 160, xx + 100, xx + 28);
19253 xx[100] = xx[22];
19254 xx[101] = xx[27];
19255 xx[102] = xx[131];
19256 pm_math_cross3(xx + 100, xx + 126, xx + 108);
19257 pm_math_quatXform(xx + 428, xx + 108, xx + 100);
19258 xx[0] = xx[100] - xx[105] * xx[433];
19259 xx[3] = xx[101] + xx[105] * xx[432];
19260 xx[9] = xx[3] * xx[313] + xx[383] * xx[0];
19261 xx[108] = xx[105] * xx[33] + xx[0] - xx[80] * xx[9] * xx[383] - xx[156];
19262 xx[109] = xx[105] * xx[159] + xx[3] - xx[80] * xx[9] * xx[313] + xx[170];
19263 xx[110] = xx[102] - (xx[313] * xx[313] * xx[102] + xx[102] * xx[383] * xx[383])
19264 * xx[80];
19265 pm_math_quatXform(xx + 152, xx + 108, xx + 100);
19266 xx[0] = xx[49] * xx[489];
19267 xx[3] = xx[49] * xx[490];
19268 pm_math_quatInverseXform(xx + 484, xx + 183, xx + 108);
19269 pm_math_quatInverseXform(xx + 480, xx + 97, xx + 122);
19270 xx[9] = xx[440] * xx[57];
19271 xx[12] = xx[57] * xx[303] - xx[50] * xx[400];
19272 xx[22] = xx[440] * xx[50];
19273 xx[131] = xx[9];
19274 xx[132] = xx[12];
19275 xx[133] = - xx[22];
19276 pm_math_cross3(xx + 441, xx + 131, xx + 134);
19277 xx[131] = xx[209] + xx[80] * (xx[491] * xx[0] - xx[488] * xx[3]) + xx[108] +
19278 xx[122] + xx[80] * (xx[134] + xx[397] * xx[9]) - xx[50];
19279 xx[132] = (xx[488] * xx[0] + xx[491] * xx[3]) * xx[80] + xx[109] + xx[123] +
19280 xx[80] * (xx[135] + xx[397] * xx[12]) - xx[225];
19281 xx[133] = xx[116] + xx[49] - (xx[489] * xx[0] + xx[490] * xx[3]) * xx[80] +
19282 xx[110] + xx[124] + (xx[136] - xx[397] * xx[22]) * xx[80] - xx[57] - xx[83];
19283 pm_math_cross3(xx + 131, xx + 84, xx + 108);
19284 pm_math_quatXform(xx + 212, xx + 108, xx + 122);
19285 xx[108] = xx[457] * xx[83] - xx[493] * xx[57];
19286 xx[109] = xx[83] * xx[401] + xx[57] * xx[13] + xx[50] * xx[314];
19287 xx[110] = xx[83] * xx[444] + xx[493] * xx[50];
19288 pm_math_quatXform(xx + 140, xx + 108, xx + 131);
19289 pm_math_cross3(xx + 97, xx + 454, xx + 108);
19290 xx[134] = xx[51] + xx[131] + xx[108];
19291 xx[135] = xx[8] + xx[132] + xx[109];
19292 xx[136] = xx[133] - xx[11] + xx[110];
19293 pm_math_quatXform(xx + 68, xx + 134, xx + 108);
19294 pm_math_cross3(xx + 183, xx + 494, xx + 131);
19295 xx[134] = xx[112] + xx[108] + xx[131];
19296 xx[135] = xx[113] + xx[109] + xx[132];
19297 xx[136] = xx[114] + xx[110] + xx[133];
19298 pm_math_quatXform(xx + 42, xx + 134, xx + 108);
19299 xx[0] = xx[117] + xx[108] - xx[49] * xx[492];
19300 xx[3] = xx[118] + xx[109] + xx[49] * xx[498];
19301 xx[9] = xx[3] * xx[15] + xx[19] * xx[0];
19302 xx[12] = xx[119] + xx[110];
19303 xx[108] = xx[18] + xx[0] - xx[80] * xx[9] * xx[19] - xx[208];
19304 xx[109] = xx[61] + xx[3] - xx[80] * xx[9] * xx[15] + xx[210];
19305 xx[110] = xx[12] - (xx[15] * xx[12] * xx[15] + xx[12] * xx[19] * xx[19]) * xx
19306 [80];
19307 pm_math_quatXform(xx + 72, xx + 108, xx + 131);
19308 xx[0] = xx[149] * xx[558];
19309 xx[3] = xx[149] * xx[544];
19310 xx[9] = xx[150] * xx[21];
19311 xx[12] = xx[151] * xx[21];
19312 xx[13] = xx[150] - (xx[21] * xx[9] - xx[25] * xx[12]) * xx[80];
19313 xx[22] = xx[151] - xx[80] * (xx[25] * xx[9] + xx[21] * xx[12]);
19314 xx[108] = xx[172] + (xx[0] * xx[513] + xx[3] * xx[560]) * xx[80] + xx[13];
19315 xx[109] = xx[80] * (xx[0] * xx[560] - xx[3] * xx[513]) + xx[22] - xx[186];
19316 xx[110] = xx[5] + xx[149] - (xx[3] * xx[544] + xx[558] * xx[0]) * xx[80] + xx
19317 [164];
19318 pm_math_cross3(xx + 108, xx + 267, xx + 134);
19319 pm_math_quatXform(xx + 201, xx + 134, xx + 108);
19320 xx[134] = xx[13];
19321 xx[135] = xx[22];
19322 xx[136] = xx[164];
19323 pm_math_cross3(xx + 134, xx + 126, xx + 137);
19324 pm_math_quatXform(xx + 575, xx + 137, xx + 134);
19325 xx[0] = xx[134] - xx[149] * xx[580];
19326 xx[3] = xx[135] + xx[149] * xx[579];
19327 xx[5] = xx[3] * xx[452] + xx[399] * xx[0];
19328 xx[137] = xx[149] * xx[14] + xx[0] - xx[80] * xx[5] * xx[399] + xx[174];
19329 xx[138] = xx[149] * xx[192] + xx[3] - xx[80] * xx[5] * xx[452] - xx[193];
19330 xx[139] = xx[136] - (xx[452] * xx[452] * xx[136] + xx[136] * xx[399] * xx[399])
19331 * xx[80];
19332 pm_math_quatXform(xx + 188, xx + 137, xx + 12);
19333 xx[0] = xx[49] * xx[639];
19334 xx[3] = xx[49] * xx[640];
19335 pm_math_quatInverseXform(xx + 630, xx + 183, xx + 134);
19336 pm_math_quatInverseXform(xx + 626, xx + 97, xx + 137);
19337 xx[5] = xx[546] * xx[57];
19338 xx[9] = xx[57] * xx[379] - xx[50] * xx[473];
19339 xx[22] = xx[546] * xx[50];
19340 xx[144] = - xx[5];
19341 xx[145] = xx[9];
19342 xx[146] = xx[22];
19343 pm_math_cross3(xx + 601, xx + 144, xx + 149);
19344 xx[144] = xx[253] + xx[80] * (xx[641] * xx[0] - xx[638] * xx[3]) + xx[134] +
19345 xx[137] + xx[80] * (xx[149] + xx[312] * xx[5]) - xx[50];
19346 xx[145] = (xx[638] * xx[0] + xx[641] * xx[3]) * xx[80] + xx[135] + xx[138] +
19347 xx[80] * (xx[150] - xx[312] * xx[9]) - xx[266];
19348 xx[146] = xx[196] + xx[49] - (xx[639] * xx[0] + xx[640] * xx[3]) * xx[80] +
19349 xx[136] + xx[139] + (xx[151] - xx[312] * xx[22]) * xx[80] - xx[57] - xx[87];
19350 pm_math_cross3(xx + 144, xx + 84, xx + 134);
19351 pm_math_quatXform(xx + 277, xx + 134, xx + 137);
19352 xx[134] = xx[611] * xx[87] - xx[635] * xx[57];
19353 xx[135] = xx[535] * xx[87] + xx[57] * xx[463] + xx[50] * xx[446];
19354 xx[136] = xx[87] * xx[574] + xx[635] * xx[50];
19355 pm_math_quatXform(xx + 140, xx + 134, xx + 87);
19356 pm_math_cross3(xx + 97, xx + 595, xx + 134);
19357 xx[144] = xx[51] + xx[87] + xx[134];
19358 xx[145] = xx[8] + xx[88] + xx[135];
19359 xx[146] = xx[89] - xx[11] + xx[136];
19360 pm_math_quatXform(xx + 68, xx + 144, xx + 87);
19361 pm_math_cross3(xx + 183, xx + 644, xx + 134);
19362 xx[144] = xx[112] + xx[87] + xx[134];
19363 xx[145] = xx[113] + xx[88] + xx[135];
19364 xx[146] = xx[114] + xx[89] + xx[136];
19365 pm_math_quatXform(xx + 42, xx + 144, xx + 87);
19366 xx[0] = xx[117] + xx[87] - xx[49] * xx[634];
19367 xx[3] = xx[118] + xx[88] + xx[49] * xx[636];
19368 xx[5] = xx[3] * xx[15] + xx[19] * xx[0];
19369 xx[9] = xx[119] + xx[89];
19370 xx[87] = xx[18] + xx[0] - xx[80] * xx[5] * xx[19] - xx[233];
19371 xx[88] = xx[61] + xx[3] - xx[80] * xx[5] * xx[15] + xx[254];
19372 xx[89] = xx[9] - (xx[15] * xx[9] * xx[15] + xx[9] * xx[19] * xx[19]) * xx[80];
19373 pm_math_quatXform(xx + 72, xx + 87, xx + 134);
19374 xx[0] = xx[165] * xx[706];
19375 xx[3] = xx[165] * xx[686];
19376 xx[5] = xx[166] * xx[21];
19377 xx[9] = xx[167] * xx[21];
19378 xx[22] = xx[166] - (xx[21] * xx[5] - xx[25] * xx[9]) * xx[80];
19379 xx[26] = xx[167] - xx[80] * (xx[25] * xx[5] + xx[21] * xx[9]);
19380 xx[87] = xx[217] + (xx[0] * xx[670] + xx[3] * xx[708]) * xx[80] + xx[22];
19381 xx[88] = xx[80] * (xx[0] * xx[708] - xx[3] * xx[670]) + xx[26] - xx[231];
19382 xx[89] = xx[24] + xx[165] - (xx[3] * xx[686] + xx[706] * xx[0]) * xx[80] + xx
19383 [168];
19384 pm_math_cross3(xx + 87, xx + 267, xx + 144);
19385 pm_math_quatXform(xx + 234, xx + 144, xx + 87);
19386 xx[144] = xx[22];
19387 xx[145] = xx[26];
19388 xx[146] = xx[168];
19389 pm_math_cross3(xx + 144, xx + 126, xx + 149);
19390 pm_math_quatXform(xx + 725, xx + 149, xx + 144);
19391 xx[0] = xx[144] - xx[165] * xx[730];
19392 xx[3] = xx[145] + xx[165] * xx[729];
19393 xx[5] = xx[3] * xx[605] + xx[532] * xx[0];
19394 xx[149] = xx[165] * xx[211] + xx[0] - xx[80] * xx[5] * xx[532] + xx[239];
19395 xx[150] = xx[165] * xx[251] + xx[3] - xx[80] * xx[5] * xx[605] - xx[252];
19396 xx[151] = xx[146] - (xx[605] * xx[605] * xx[146] + xx[146] * xx[532] * xx[532])
19397 * xx[80];
19398 pm_math_quatXform(xx + 226, xx + 149, xx + 144);
19399 xx[0] = xx[49] * xx[916];
19400 xx[3] = xx[49] * xx[917];
19401 pm_math_quatInverseXform(xx + 911, xx + 183, xx + 149);
19402 pm_math_quatInverseXform(xx + 897, xx + 97, xx + 152);
19403 xx[5] = xx[50] * xx[637];
19404 xx[155] = xx[310] + xx[80] * (xx[918] * xx[0] - xx[915] * xx[3]) + xx[149] +
19405 xx[152] + xx[80] * xx[5] * xx[637] - xx[50];
19406 xx[156] = (xx[915] * xx[0] + xx[918] * xx[3]) * xx[80] + xx[150] + xx[153] -
19407 xx[80] * xx[2] * xx[5] - xx[330];
19408 xx[157] = xx[194] + xx[49] - (xx[916] * xx[0] + xx[917] * xx[3]) * xx[80] +
19409 xx[151] + xx[154] - (xx[57] + xx[104]);
19410 pm_math_cross3(xx + 155, xx + 84, xx + 149);
19411 pm_math_quatXform(xx + 319, xx + 149, xx + 83);
19412 xx[149] = xx[17] * xx[104] - xx[57] * xx[66];
19413 xx[150] = - (xx[104] * xx[20] + xx[57] * xx[707] + xx[790] * xx[50]);
19414 xx[151] = xx[50] * xx[66];
19415 pm_math_quatXform(xx + 140, xx + 149, xx + 55);
19416 pm_math_cross3(xx + 97, xx + 891, xx + 104);
19417 xx[97] = xx[51] + xx[55] + xx[104];
19418 xx[98] = xx[8] + xx[56] + xx[105];
19419 xx[99] = xx[57] - xx[11] + xx[106];
19420 pm_math_quatXform(xx + 68, xx + 97, xx + 55);
19421 pm_math_cross3(xx + 183, xx + 919, xx + 66);
19422 xx[69] = xx[112] + xx[55] + xx[66];
19423 xx[70] = xx[113] + xx[56] + xx[67];
19424 xx[71] = xx[114] + xx[57] + xx[68];
19425 pm_math_quatXform(xx + 42, xx + 69, xx + 55);
19426 xx[0] = xx[117] + xx[55] - xx[49] * xx[121];
19427 xx[2] = xx[118] + xx[56] + xx[49] * xx[148];
19428 xx[3] = xx[2] * xx[15] + xx[19] * xx[0];
19429 xx[5] = xx[119] + xx[57];
19430 xx[40] = xx[18] + xx[0] - xx[80] * xx[3] * xx[19] - xx[81];
19431 xx[41] = xx[61] + xx[2] - xx[80] * xx[3] * xx[15] + xx[82];
19432 xx[42] = xx[5] - (xx[15] * xx[5] * xx[15] + xx[5] * xx[19] * xx[19]) * xx[80];
19433 pm_math_quatXform(xx + 72, xx + 40, xx + 17);
19434 xx[0] = xx[16] * xx[745];
19435 xx[2] = xx[16] * xx[743];
19436 xx[3] = xx[46] * xx[21];
19437 xx[5] = xx[47] * xx[21];
19438 xx[8] = xx[46] - (xx[21] * xx[3] - xx[25] * xx[5]) * xx[80];
19439 xx[9] = xx[47] - xx[80] * (xx[25] * xx[3] + xx[21] * xx[5]);
19440 xx[20] = xx[260] + (xx[0] * xx[720] + xx[2] * xx[753]) * xx[80] + xx[8];
19441 xx[21] = xx[80] * (xx[0] * xx[753] - xx[2] * xx[720]) + xx[9] - xx[288];
19442 xx[22] = xx[107] + xx[16] - (xx[2] * xx[743] + xx[745] * xx[0]) * xx[80] + xx
19443 [48];
19444 pm_math_cross3(xx + 20, xx + 267, xx + 24);
19445 pm_math_quatXform(xx + 292, xx + 24, xx + 20);
19446 xx[24] = xx[8];
19447 xx[25] = xx[9];
19448 xx[26] = xx[48];
19449 pm_math_cross3(xx + 24, xx + 126, xx + 40);
19450 pm_math_quatXform(xx + 777, xx + 40, xx + 24);
19451 xx[0] = xx[24] - xx[16] * xx[782];
19452 xx[2] = xx[25] + xx[16] * xx[781];
19453 xx[3] = xx[2] * xx[660] + xx[643] * xx[0];
19454 xx[40] = xx[0] - xx[80] * xx[3] * xx[643] - xx[16] * xx[270] + xx[291];
19455 xx[41] = xx[16] * xx[299] + xx[2] - xx[80] * xx[3] * xx[660] - xx[304];
19456 xx[42] = xx[26] - (xx[660] * xx[660] * xx[26] + xx[26] * xx[643] * xx[643]) *
19457 xx[80];
19458 pm_math_quatXform(xx + 284, xx + 40, xx + 24);
19459 xx[147] = fabs(xx[63] + xx[34] + xx[58] - (xx[91] + xx[4] + xx[35]));
19460 xx[148] = fabs(xx[64] + xx[90] + xx[59] - (xx[92] + xx[96] + xx[36]));
19461 xx[149] = fabs(xx[65] + xx[1] + xx[60] - (xx[93] + xx[6] + xx[37]));
19462 xx[150] = fabs(xx[52] + xx[34] + xx[76] - (xx[28] + xx[31] + xx[100]));
19463 xx[151] = fabs(xx[53] + xx[90] + xx[77] - (xx[29] + xx[39] + xx[101]));
19464 xx[152] = fabs(xx[54] + xx[1] + xx[78] - (xx[30] + xx[103] + xx[102]));
19465 xx[153] = fabs(xx[122] + xx[34] + xx[131] - (xx[108] + xx[12] - xx[111]));
19466 xx[154] = fabs(xx[123] + xx[90] + xx[132] - (xx[109] + xx[130] + xx[13]));
19467 xx[155] = fabs(xx[124] + xx[1] + xx[133] - (xx[110] + xx[173] + xx[14]));
19468 xx[156] = fabs(xx[137] + xx[34] + xx[134] - (xx[87] + xx[200] + xx[144]));
19469 xx[157] = fabs(xx[138] + xx[90] + xx[135] - (xx[88] + xx[216] + xx[145]));
19470 xx[158] = fabs(xx[139] + xx[1] + xx[136] - (xx[89] + xx[218] + xx[146]));
19471 xx[159] = fabs(xx[83] + xx[34] + xx[17] - (xx[20] + xx[232] + xx[24]));
19472 xx[160] = fabs(xx[84] + xx[90] + xx[18] - (xx[21] + xx[23] + xx[25]));
19473 xx[161] = fabs(xx[85] + xx[1] + xx[19] - (xx[22] + xx[10] + xx[26]));
19474 ii[0] = 147;
19475
19476 {
19477 int ll;
19478 for (ll = 148; ll < 162; ++ll)
19479 if (xx[ll] > xx[ii[0]])
19480 ii[0] = ll;
19481 }
19482
19483 ii[0] -= 147;
19484 xx[0] = xx[147 + (ii[0])];
19485 xx[1] = xx[0] - xx[7];
19486 if (xx[1] < 0.0)
19487 ii[1] = -1;
19488 else if (xx[1] > 0.0)
19489 ii[1] = +1;
19490 else
19491 ii[1] = 0;
19492 ii[2] = ii[1];
19493 if (0 > ii[2])
19494 ii[2] = 0;
19495 if (ii[2] != 0) {
19496 switch (ii[0])
19497 {
19498 case 0:
19499 case 1:
19500 case 2:
19501 {
19502 return sm_ssci_recordRunTimeError(
19503 "sm:compiler:messages:simulationErrors:ConstraintViolation",
19504 "'PlatformAssem/Rod_assem_11/Spherical1' kinematic constraints cannot be maintained. Check solver type and consistency tolerance in the Simscape Solver Configuration block. Check Simulink solver type and tolerances in Model Configuration Parameters. A kinematic singularity might be the source of this problem.",
19505 neDiagMgr);
19506 }
19507
19508 case 3:
19509 case 4:
19510 case 5:
19511 {
19512 return sm_ssci_recordRunTimeError(
19513 "sm:compiler:messages:simulationErrors:ConstraintViolation",
19514 "'PlatformAssem/Rod_assem_12/Spherical1' kinematic constraints cannot be maintained. Check solver type and consistency tolerance in the Simscape Solver Configuration block. Check Simulink solver type and tolerances in Model Configuration Parameters. A kinematic singularity might be the source of this problem.",
19515 neDiagMgr);
19516 }
19517
19518 case 6:
19519 case 7:
19520 case 8:
19521 {
19522 return sm_ssci_recordRunTimeError(
19523 "sm:compiler:messages:simulationErrors:ConstraintViolation",
19524 "'PlatformAssem/Rod_assem_13/Spherical1' kinematic constraints cannot be maintained. Check solver type and consistency tolerance in the Simscape Solver Configuration block. Check Simulink solver type and tolerances in Model Configuration Parameters. A kinematic singularity might be the source of this problem.",
19525 neDiagMgr);
19526 }
19527
19528 case 9:
19529 case 10:
19530 case 11:
19531 {
19532 return sm_ssci_recordRunTimeError(
19533 "sm:compiler:messages:simulationErrors:ConstraintViolation",
19534 "'PlatformAssem/Rod_assem_14/Spherical1' kinematic constraints cannot be maintained. Check solver type and consistency tolerance in the Simscape Solver Configuration block. Check Simulink solver type and tolerances in Model Configuration Parameters. A kinematic singularity might be the source of this problem.",
19535 neDiagMgr);
19536 }
19537
19538 case 12:
19539 case 13:
19540 case 14:
19541 {
19542 return sm_ssci_recordRunTimeError(
19543 "sm:compiler:messages:simulationErrors:ConstraintViolation",
19544 "'PlatformAssem/Rod_assem_1/Spherical1' kinematic constraints cannot be maintained. Check solver type and consistency tolerance in the Simscape Solver Configuration block. Check Simulink solver type and tolerances in Model Configuration Parameters. A kinematic singularity might be the source of this problem.",
19545 neDiagMgr);
19546 }
19547 }
19548 }
19549
19550 state[0] = xx[922];
19551 state[1] = xx[923];
19552 state[2] = xx[924];
19553 state[3] = xx[925];
19554 state[4] = xx[926];
19555 state[5] = xx[927];
19556 state[6] = xx[928];
19557 state[7] = xx[929];
19558 state[8] = xx[930];
19559 state[9] = xx[931];
19560 state[10] = xx[932];
19561 state[11] = xx[933];
19562 state[12] = xx[934];
19563 state[13] = xx[935];
19564 state[14] = xx[936];
19565 state[15] = xx[937];
19566 state[16] = xx[938];
19567 state[17] = xx[939];
19568 state[18] = xx[940];
19569 state[19] = xx[941];
19570 state[20] = xx[942];
19571 state[21] = xx[943];
19572 state[22] = xx[944];
19573 state[23] = xx[945];
19574 state[24] = xx[946];
19575 state[25] = xx[947];
19576 state[26] = xx[948];
19577 state[27] = xx[949];
19578 state[28] = xx[950];
19579 state[29] = xx[951];
19580 state[30] = xx[952];
19581 state[31] = xx[953];
19582 state[32] = xx[954];
19583 state[33] = xx[955];
19584 state[34] = xx[956];
19585 state[35] = xx[957];
19586 state[36] = xx[958];
19587 state[37] = xx[959];
19588 state[38] = xx[960];
19589 state[39] = xx[961];
19590 state[40] = xx[962];
19591 state[41] = xx[963];
19592 state[42] = xx[964];
19593 state[43] = xx[965];
19594 state[44] = xx[966];
19595 state[45] = xx[967];
19596 state[46] = xx[968];
19597 state[47] = xx[969];
19598 state[48] = xx[970];
19599 state[49] = xx[971];
19600 state[50] = xx[972];
19601 state[51] = xx[973];
19602 state[52] = xx[974];
19603 state[53] = xx[975];
19604 state[54] = xx[976];
19605 state[55] = xx[977];
19606 state[56] = xx[978];
19607 state[57] = xx[979];
19608 state[58] = xx[980];
19609 state[59] = xx[981];
19610 state[60] = xx[982];
19611 state[61] = xx[983];
19612 state[62] = xx[984];
19613 state[63] = xx[985];
19614 state[64] = xx[986];
19615 state[65] = xx[987];
19616 state[66] = xx[988];
19617 state[67] = xx[989];
19618 state[68] = xx[990];
19619 state[69] = xx[991];
19620 state[70] = xx[992];
19621 state[71] = xx[993];
19622 state[72] = xx[994];
19623 state[73] = xx[995];
19624 state[74] = xx[996];
19625 state[75] = xx[997];
19626 state[76] = xx[998];
19627 state[77] = xx[999];
19628 state[78] = xx[1000];
19629 state[79] = xx[1001];
19630 state[80] = xx[1002];
19631 state[81] = xx[1003];
19632 state[82] = xx[1004];
19633 state[83] = xx[1005];
19634 state[84] = xx[1006];
19635 state[85] = xx[1007];
19636 state[86] = xx[1008];
19637 state[87] = xx[1009];
19638 state[88] = xx[1010];
19639 state[89] = xx[1011];
19640 state[90] = xx[1012];
19641 state[91] = xx[1013];
19642 state[92] = xx[1014];
19643 state[93] = xx[1015];
19644 state[94] = xx[1016];
19645 state[95] = xx[1017];
19646 state[96] = xx[1018];
19647 return NULL;
19648}
19649